0
1

More than 3 years have passed since last update.

リスト内包表記

Posted at
1
t = (1, 2, 3, 4, 5)
l = []

for i in t:
    l.append(i)

print(l)
1の実行結果
[1, 2, 3, 4, 5]

これをリスト内包表記で書くと

1をリスト内包表記で
t = (1, 2, 3, 4, 5)
l = [i for i in t]
print(l)
1をリスト内包表記での実行結果
[1, 2, 3, 4, 5]

3で割った余りが0の数字だけリストに入れる場合を考える。

2
t = (1, 2, 3, 4, 5, 6)
l = []

for i in t:
    if i % 3 == 0:
        l.append(i)

print(l)
2の実行結果
[3, 6]

これをリスト内包表記で書くと

2をリスト内包表記で
t = (1, 2, 3, 4, 5, 6)
l = [i for i in t if i % 3 == 0]
print(l)
2をリスト内包表記での実行結果
[3, 6]

二つのタプルがあり、
それらを操作した数をリストに入れる場合

3
t = (1, 2, 3)
t2 = (4, 5, 6, 7, 8, 9)
l = []

for i in t:
    for j in t2:
        l.append(i * j)

print(l)
3の実行結果
[4, 5, 6, 7, 8, 9, 8, 10, 12, 14, 16, 18, 12, 15, 18, 21, 24, 27]

これをリスト内包表記で書くと

3をリスト内包表記で
t = (1, 2, 3)
t2 = (4, 5, 6, 7, 8, 9)

l = [i * j for i in t for j in t2]
print(l)
3をリスト内包表記での実行結果
[4, 5, 6, 7, 8, 9, 8, 10, 12, 14, 16, 18, 12, 15, 18, 21, 24, 27]

リスト内包表記で書けるからといって、
forループを2つも3つも内包させたりして、
長くなるとコードが読みにくくなるので避けるべき。

上記の「2をリスト内包表記で」位までにする事が好ましい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1