1. 程式人生 > 其它 >python---列表解析式

python---列表解析式

最簡形式:[expression for item in list]

"""
求1-5 的平方
"""
print([i ** 2 for i in range(1, 6)])
# 輸出結果:[1, 4, 9, 16, 25]
word_list = ["I", "love", "China"]
print([item.title() for item in word_list])
# 輸出結果:['I', 'Love', "China"]

過濾條件形式[expression for item in list if conditional]

如果只有if, 則if在for迴圈後邊;如果有if...else, 則if...else在for迴圈前邊

list_val = []
for i in range(1, 21):
    if i % 2 ==0:
        list_val.append(i)
print(list_val)

# 列表解析式
print([i for i in range(1, 21) if i % 2 == 0])
# 執行結果:[2, 4, 6, 8, 10, 12, 14, 16, 18]
names = ['Elsa', 'John', 'Jessie']
new_list = []
for item in names:
    if len(item) > 4:
        new_list.append(item.upper())
    
else: new_list.append(item.lower()) print(new_list) # 列表解析式 print([item.upper() if len(item) >4 else item.lower() for item in names]) # 執行結果:['elsa', 'john', 'JESSIE']

迴圈巢狀形式[expression for i in list1 for j in list2]

list_val = []
for i in range(1,3):
    for j in range(1,3):
        list_val.append(f
'{i} + {j}') print(list_val) # 列表解析式 print([f'{i} + {j}' for i in range(1, 3) for j in range(1, 3)]) # 執行結果:['1 + 1', '1 + 2', '2 + 1', '2 + 2']