<Python> リスト内包表記
リスト内包表記の練習。
まずリストセット。
In [1]: l1 = [1,2,3] In [2]: l2 = ['a', 'b', 'c'] In [3]: l3 = [4,5,6]
で、内包表記。
for ~ in
2回だと、全組み合わせがまわる。
セットで取り出だす場合は、zip()
を使う。
In [4]: [ v * 2 for v in l1 ] Out[4]: [2, 4, 6] In [5]: [ v + w * 10 for v in l1 for w in l3 ] Out[5]: [41, 51, 61, 42, 52, 62, 43, 53, 63] In [7]: [ v + w * 10 for v,w in zip(l1, l3) ] Out[7]: [41, 52, 63]
で、ディクショナリdict
for ~ in
だと最後の変数しか取らないらしい。。。 へー。。。
In [9]: { v: w for v in l2 for w in l1 } Out[9]: {'a': 3, 'b': 3, 'c': 3} In [10]: { v: w for v,w in zip(l2, l1) } Out[10]: {'a': 1, 'b': 2, 'c': 3}