1024 Tech Memo

defaultdictとは?
from collections import defaultdictで持って来れる
キーがない時に、自動で初期値を作ってくれる辞書。例えば、キーがまだない時に普通だとエラーになるけど、勝手にゼロを入れて作ってくれる。

Counterは?
defaultdictのintバージョン。数え上げ専用。dictクラスから継承されてる。
s =”abracadabra”
for char in s:

c2[char] += 1
Counter({‘a’: 5, ‘b’: 2, ‘r’: 2, ‘c’: 1, ‘d’: 1})
most_common(k)というメソッドを使うと、上位kの頻度の文字を返してくれる。

Counter(s).most_common(2)
[(‘a’, 5), (‘b’, 2)]
こんな感じ。

Composing programs 1.3まで読了
pure function: 同じインプットに対して、必ず同じアウトプットを返す

non-pure function: 返り値がNoneだったりする

print(print(1),print(2))
1
2
None None

list.sort()

  • リスト専用のメソッドmy_list.sort(...)
  • 就地(in-place)で並べ替える → 元のリストが変わる
  • 戻り値は None(だからチェーンや [:K] 直結はNG)
  • 追加メモリほぼゼロ(O(1) 追加)

sorted(iterable)

  • どんなイテラブルでもOK(list, tuple, set, dict, generator…)
  • 新しい “リスト” を返す → 元は壊さない
  • 戻り値がリストなのでチェーン可sorted(...)[ :K ] など)
  • 返すぶんのメモリが要る(O(n) 追加)

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です