WELCOME

不积跬步,无以至千里;不积小流,无以成江海。

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]))  # >> <class 'int'>
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']

 

集合推导式与列表推导式相似,只是如果有相同元素则会去重
1 字典推导式:
2 
3 dict1 = {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'C'}
4 
5 newdict = {value: key for key, value in dict1.items()}
6 print(newdict)

{'A': 'a', 'B': 'b', 'C': 'd'}

 

posted @ 2022-03-21 20:42  Ambitious~  阅读(31)  评论(0)    收藏  举报