はじめに
これは python でアルゴリズムをとくためのチートシートです。
他の言語でよく書くけど、pythonでどうかくっけ?
みたいな人向けです
ざっくりの表
| 書きたいこと | 実装 | 補足 |
|---|---|---|
| forで2から12まで3こ飛ばしで呼ぶ | for i in range(2,12,3): | |
| 読み取る | str=input() | 一行読み取りです |
| 分ける | str.split(区切り文字) | 指定なしで空白区切り |
| 文字列の長さを測る | len(文字列) | |
| listの中をintにする | l_si_i = [int(s) for s in l_si] | |
| ifでandを使う | if(hoge and piyo) | |
| ifでorを使う | if(hoge or piyo) | |
| if/else if | elif | 他の時はif else そのまま |
| listを使う | hoge = [] | |
| listから削除 | list.remove(要素) | 最初にヒットした要素 |
| listに足す | hoge.append("test") | |
| listにlistを入れる | hoge.extend(piyo) | |
| listの最大値 | max(list) | |
| listの最小値 | min(list) | |
| listにあるかどうか | a in list | aがlistに含まれてたらTure |
| listにある時にインテックスの取得 | list.index(要素) | ないとエラー |
| listのソート | hoge=sorted(piyo) | もともとのリストを崩さない |
| 文字列の文字を取り出す | str = "asdf" str[0] はa | ()ではないので注意 |
| 多次元配列を作る | list = [[0] * m for i in range(n)] | |
| キャスト | int("2") str(8) | |
| 階乗 | print(math.factorial(5)) | import math |
正規表現
正規表現
import re
print(re.search('aaa$', s)) # aaaがsにあればtrue,なければfalse
a = re.sub("x","y",text) #x を yに置換
組み合わせの上の補足
| 名前 | 意味 |
|---|---|
| permutations | 任意の数を選んで、並び変える |
| combinations | 任意の数を選ぶ |
| combinations_with_replacement | 重複を許す組み合わせ |
| これを置き換えて使う |
hoge.py
import math
import itertools
list2 = [1,2,3]
p_list = list(itertools.permutations(list2, 2))
print(p_list)
#[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
print(len(p_list))
#6
print(p_list[0][1])
#2
for v in itertools.permutations(list2,2):
print(v)
# (1, 2)
# (1, 3)
# (2, 1)
# (2, 3)
# (3, 1)
# (3, 2)
# # v[0]やv[1]で各要素を呼ぶことも可能
for v in itertools.permutations(list2,2):
print(v[0])
組み合わせの数だけ
入力受取
from scipy.special import comb
# a = comb(n, r)
a = comb(n, r, exact=True)
#入力受け取り
入力受取
# 二つをの整数を受け取る
n, m = map(int, input().split())
# 複数の整数を受け取ってリストに入れる
a = list(map(int, input().split()))