Python列表推导式


1.原始方法

1 list1 = []
2 for i in range(1, 21):
3     list1.append(i)
4 print(list1)  # >>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

2.格式1:[i for i in 可迭代的]

1 list0 = [i for i in range(1, 21)]
2 print(list0)  # >>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
3 
4 list0 = [i + 2 for i in range(1, 21)]
5 print(list0)  # >>[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
6 
7 list2 = [i for i in range(0, 20, 2)]
8 print(list2)  # >> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

3.格式2:[i for i in 可迭代的 if 条件]

1 list3 = [i for i in range(0, 20) if i % 2 == 0]
2 print(list3)  # >> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
3 print(type(list3[1]))  # >> 
4 
5 list4 = ['89', 'hello', '2838', 'world', 'luck', '25']
6 list5 = [i for i in list4 if i.isalpha() == True]
7 print(list5)  # >> ['hello', 'world', 'luck']

4.格式3:[结果i if 条件 else 结果2 for 变量 in 可迭代对象]

1 list4 = ['89', 'hello', '2838', 'world', 'luck', 'high', '25']
2 list6 = [i.title() if i.startswith('h') else i.upper() for i in list4]
3 print(list6) # >> ['89', 'Hello', '2838', 'WORLD', 'LUCK', 'High', '25']