リスト内表記とは?
私自身、これまでも、これからも使うかはわかりませんが、リスト内表記についてまとめたいと思います。
まず、リスト内表記とは??? こんな感じです↓
a=[True if i >4 else False for i in range(10)]
正直、初めて見た時はpythonだと思えませんでした(笑)
どういう時に使う?
[chat face="icons8-python-480.png" name="pyてょん" align="right" border="blue" bg="none"] 簡潔に言うと、スクリプトを省略できます! [/chat]
例えば、このように繰り返し文を書いた場合
a=[] #空のリストを作成 for i in range(5): a.append(i) #リストに文字を追加指定いく print(a)
-> [0, 1, 2, 3, 4]
リスト内表記では
a=[i for i in range(5)] print(a)
-> [0, 1, 2, 3, 4]
[chat face="icons8-python-480.png" name="pyてょん" align="right" border="blue" bg="none"] 一文でかけます [/chat]
[chat face="daruma_.png" name="python大好き" align="left" border="blue" bg="none"] 便利じゃん![/chat]
シンプル版
[#リストに入れる部分 for #任意の関数 in #くり返し分の範囲]
[i for i in range(5)]ならば、iが0から5まで出力され、そのままリストに入れる。
2倍してからリストに入れたい場合
[a*2 for i in range(5)]
-> [0, 2, 4, 6, 8]
if がある場合
[chat face="icons8-python-480.png" name="pyてょん" align="right" border="blue" bg="none"] if文は一番後ろに入れる![/chat]
a=[i for i in range(5) if i >=3] print(a)
if else の場合
[#真の場合 if #条件式 else #偽の場合 for i in range(5) ]
a=[True if 3>= i else False for i in range(5)] print(a)
-> [True, True, True, True, False]
0,1,2,3,4とiが出力されるので、iが3以下ならリストにTrueを加える、それ以外ならFalseを加える
[chat face="daruma_.png" name="python大好き" align="left" border="blue" bg="none"] ちょっと複雑ー[/chat]