Python – 1-2. List(2) –
2. リスト内包記法
for文を使ったリストへの代入を1行で記述できる手法。
リスト変数 = [ 式 for 変数 in 繰返しオブジェクト ]
記述例
>>> a=[x for x in range(5)] >>> a [0, 1, 2, 3, 4]
取得だけではなく、データ加工したい場合は式を使うこともできる。
>>> a=[x*2 for x in range(5)] >>> a [0, 2, 4, 6, 8] >>> a=[x+1 for x in range(5)] >>> a [1, 2, 3, 4, 5]
変数部分に式を入れるとエラー。
>>> a=[x for x*2 in range(5)] File "<stdin>", line 1 SyntaxError: can't assign to operator
文字列の場合
>>> a=[x for x in 'abcde'] >>> a ['a', 'b', 'c', 'd', 'e']
ちなみにこれは、
a=list('abcde')
と書いても同じです。
if文を使用したリスト内包記法
リスト変数 = [ 真の場合の式 if 判定式 else 偽の場合の式 for 変数 in 繰返しオブジェクト ]
例)0~8のリストを対象に 2で割った余りを求め、奇数の場合は2倍, 偶数の場合は1/2する
>>> a=[x*2 if x%2==1 else x/2 for x in range(9)] >>> a [0.0, 2, 1.0, 6, 2.0, 10, 3.0, 14, 4.0]
最近のコメント