batteries included
最近知ったのだが、Pythonはbatteries included(バッテリー同梱)な言語と言われているらしい。
標準ライブラリだけでも充分戦える、というニュアンスらしい。
データ分析からこの言語を知った身としては、numpyやpandas、scikit-learnなどの外部ライブラリに目が行きがち。
でも、batteries includedな言語であれば、まずは標準ライブラリを知っておいても損ないよね、知っておくべきだよね、ということで、学習の過程で知った標準ライブラリについて、忘れないようにメモ。
こちらも、順次追加予定。
random
文字通り、ランダムデータの生成、操作などに関する機能を持つ。
今回は、「ランダムでシーケンスをシャッフルしたい」と思い、ググった結果引っかかった、以下の2つをメモ。
random.shuffle(list)
文字通り、listをシャッフルする。
import random
list = [0,1,2,3,4,5,6,7,8,9]
random.shuffle(list)
list
Out[5]:
[6, 8, 4, 9, 1, 7, 3, 0, 5, 2]
シャッフルしたlistを返すのではなく、listそのものをシャッフルするっぽい。
また、シャッフルできるのは数字型だけみたい。
数字型以外でも可能なようです(コメント欄参照)
文字列をシャッフルしたくてたどり着いたのは、以下。
random.sample(list, k)
listから、k回だけランダムに抽出したものを返す。
つまり、文字列の文字数分だけ抽出すれば、文字列自体をシャッフルしたことになる。
list2 = 'abcdef'
''.join(random.sample(list2, len(list2)))
Out[7]:
'dbeacf'
こちらは、listそのものをいじることはしないっぽい。
list2
Out[8]:
'abcdef'
ほうほう。