自分への備忘録
Pythonを用いてコーディングしていく中で、「あれ、この処理はどうやってやるんだろう」となって検索したものを自分への備忘録としてこの投稿に残していきます。随時更新予定。
辞書型データの操作(dict:操作対象の辞書型データ)
キーだけのリスト、バリューだけのリスト
dict.keys()
dict.values()
ちなみにキーとバリュー両方を含むリストは
dict.items()
新しいキーとバリューを追加
dict[新しいキー] = バリュー
キーに対応するバリューの変更
dict[キー] = バリュー
dict[キー] += 1
キーを指定して辞書の要素を削除する
del dict[キー]
リスト型データ(list:操作対象のリスト型データ)
ある要素を持っているかどうか判定(TrueかFalseを返す)
ある要素 in list
リスト内のある要素のインデックスを得る
list.index(ある要素)
リストにある要素を追加、挿入
list.append(ある要素) # リストの末尾にある要素を追加
list.insert(0, ある要素) # リストの先頭にある要素を追加(0を変更すれば対応する位置にある要素を挿入)
文字列を分解してリストへ(文字列はstrとします)
list = str.split(' ') # これはstrを空白で分解してそれぞれをリストの要素としてリストを作成している
要素数nで全要素が0のリスト
list = [0] * n
リストを逆順にする
list.reverse()
文字列を要素に持つリストを連結して文字列にする
"".join(list) # ""の中に特定の記号を入れるとその文字を間に入れて連結する
intを要素に持つリストの要素それぞれを文字列に変換したリストを得る
map(str, list)
リストの要素を削除、切り取り
del(list[index]) # 要素を削除
list.pop(index) # こちらは切り取りなので、
list1.append(list2.pop()) # list2の末尾要素をlist1の末尾に追加、ができる
# ちなみにpop()に引数を指定しないと末尾の要素を対象にとる
0から9までの数字を要素に持つリスト(リスト内包表記)
list = [i for i in range(10)]
list = [i for i in range(10) if i % 2 == 0] # さらにif文も内包表記可能
リスト内の要素で被りがないか調べてキーがリスト内の要素、バリューがそのキーが出現する回数となる辞書を返す
import collections
list = ['a', 'b', 'c', 'b', 'd', 'a']
counter = collections.Counter(list) # -> {'a':2, 'b':2, 'c':1, 'd':1}
ソート
昇順にソート
sorted(list) # リスト内の要素を昇順にソート
sorted(dict.keys()) # 辞書をキーの昇順にソート
sorted(dict.items(), key=lambda x:x[1]) # 辞書をバリューの昇順にソート
降順にソート
sorted(list, reverse=True) # reverse引数にTrueを代入すればよい
変数のスコープ
グローバル変数
count = 0
def add_count():
global count # 関数外で定義された変数にアクセスし、
# その変更を関数外へも適用するにはglobalをつける
count += 1