pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

Pythonの内包表記

リスト

>>> a = [ x**2 for x in range(1,11)]
>>> a
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> 

※rangeの2個目の引数は終了点。range(1,11)1は1〜10

セット

>>> a = { x**2 for x in range(1,11)}
>>> a
{64, 1, 4, 36, 100, 9, 16, 49, 81, 25}
>>> 

ディクショナリ

>>> a = {i+1:i**2 for i in range(1,11)}
>>> a
{2: 1, 3: 4, 4: 9, 5: 16, 6: 25, 7: 36, 8: 49, 9: 64, 10: 81, 11: 100}
>>>

ジェネレータ

>>> a = (i**2 for i in range(1,11))
>>> next(a)
1
>>> next(a)
4
>>> 

2重ループ

>>> v = [[1,2],[3,4],[5,6]]
>>> v
[[1, 2], [3, 4], [5, 6]]
>>> [i for a in v for i in a] 
[1, 2, 3, 4, 5, 6]
>>> 

左のループ(for a in v)が親ループ。ループで書くと以下

>>> v = [[1,2],[3,4],[5,6]]
>>> w = list()
>>> for a in v:
...   for i in a:
...     w.append(i)
... 
>>> w
[1, 2, 3, 4, 5, 6]
>>>