22
33Python中提供了非常丰富的容器型数据类型,大家最为熟悉的有` list ` 、` tuple ` 、` set ` 、` dict ` 等。下面为大家分享一些使用这些类型的小技巧,希望帮助大家写出更加Pythonic的代码。
44
5- ### 从字典中取最大
5+ #### 1. 从字典中取最大
66
77假设字典对象对应的变量名为` my_dict ` 。
88
@@ -46,7 +46,7 @@ Python中提供了非常丰富的容器型数据类型,大家最为熟悉的
4646 > return g
4747 > ```
4848
49- # ## 统计列表元素出现次数
49+ # ### 2. 统计列表元素出现次数
5050
5151假设列表对象对应的变量名为`my_list` 。
5252
@@ -72,7 +72,7 @@ from collections import Counter
7272dict (Counter(my_list))
7373```
7474
75- ### 截断列表元素
75+ #### 3. 截断列表元素
7676
7777假设列表对象对应的变量名为` my_list ` ,通常大家会想到用下面的方式来截断列表。
7878``` Python
@@ -87,7 +87,7 @@ del my_list[i:]
8787del my_list[:j]
8888```
8989
90- ### 按最长列表实现zip操作
90+ #### 4. 按最长列表实现zip操作
9191
9292Python的内置函数` zip ` 可以产生一个生成器对象,该生成器对象将两个或多个可迭代对象的元素组装到一起,如下所示。
9393
@@ -115,7 +115,7 @@ list(zip_longest('abc', [1, 2, 3, 4]))
115115[(' a' , 1 ), (' b' , 2 ), (' c' , 3 ), (None , 4 )]
116116```
117117
118- ### 快速拷贝一个列表
118+ #### 5. 快速拷贝一个列表
119119
120120如果希望快速拷贝一个列表对象,可以通过切片操作来实现,但是切片操作仅实现了浅拷贝,简单的说就是切片创建了新的列表对象,但是新列表中的元素是和之前的列表共享的。如果希望实现深拷贝,可以使用` copy ` 模块的` deepcopy ` 函数。
121121
@@ -141,7 +141,7 @@ list(zip_longest('abc', [1, 2, 3, 4]))
141141 thy_list = copy.deepcopy(my_list)
142142 ```
143143
144- # ## 对两个或多个列表对应元素进行操作
144+ # ### 6. 对两个或多个列表对应元素进行操作
145145
146146Python内置函数中的`map ` 函数可以对一个可迭代对象中的元素进行“映射”操作,这个函数在批量处理数据时非常有用。但是很多人都不知道,这个函数还可以作用于多个可迭代对象,通过传入的函数对多个可迭代对象中的对应元素进行处理,如下所示。
147147
@@ -165,7 +165,7 @@ thy_list = [2, 4, 6, 8, 10]
165165[x + y for x, y in zip (my_list, thy_list)]
166166```
167167
168- ### 处理列表中的空值和零值
168+ #### 7. 处理列表中的空值和零值
169169
170170假设列表对象对应的变量名为` my_list ` ,如果列表中有空值(` None ` )和零值,我们可以用下面的方式去掉空值和零值。
171171
@@ -179,7 +179,7 @@ list(filter(bool, my_list))
179179[x for x in my_list if x]
180180```
181181
182- ### 从嵌套列表中抽取指定列
182+ #### 8. 从嵌套列表中抽取指定列
183183
184184假设` my_list ` 是一个如下所示的嵌套列表,该嵌套列表可以用来表示数学上的矩阵,如果要取出矩阵第一列的元素构成一个列表,我们可以这样写。
185185
@@ -219,10 +219,4 @@ list(col2)
219219 [1 , 6 , 3 ],
220220 [2 , 7 , 4 ],
221221 [2 , 8 , 4 ]]
222- ```
223-
224- ### 小结
225-
226- 不知道上面的内容有没有触及到大家的知识盲区,如果有的话欢迎在评论区留言讨论。
227-
228-
222+ ```
0 commit comments