各位用户为了找寻关于Python学习小技巧之列表项的推导式与过滤操作的资料费劲了很多周折。这里教程网为您整理了关于Python学习小技巧之列表项的推导式与过滤操作的相关资料,仅供查阅,以下为您介绍关于Python学习小技巧之列表项的推导式与过滤操作的详细内容
本文介绍的是关于Python中列表项的推导式与过滤操作的相关内容,分享出来供大家参考学习,下面来一起看看吧:
典型代码1:
? 1 2 3 4 5data_list
=
[
1
,
2
,
3
,
4
,
0
,
-
1
,
-
2
,
6
,
8
,
-
9
]
data_list_copy
=
[item
for
item
in
data_list]
print
(data_list)
print
(data_list_copy)
输出1:
? 1 2[
1
,
2
,
3
,
4
,
0
,
-
1
,
-
2
,
6
,
8
,
-
9
]
[
1
,
2
,
3
,
4
,
0
,
-
1
,
-
2
,
6
,
8
,
-
9
]
典型代码2:
? 1 2 3 4 5data_list
=
[
1
,
2
,
3
,
4
,
0
,
-
1
,
-
2
,
6
,
8
,
-
9
]
data_list_copy
=
[item
for
item
in
data_list
if
item >
0
]
print
(data_list)
print
(data_list_copy)
输出2:
? 1 2[
1
,
2
,
3
,
4
,
0
,
-
1
,
-
2
,
6
,
8
,
-
9
]
[
1
,
2
,
3
,
4
,
6
,
8
]
应用场景
需要保持原列表不被改动,需要拷贝一份新的列表数据;只拷贝原列表中复合条件的数据项。
带来的好处
拷贝和过滤操作集中到了一行中,减少了代码的缩进级别,使代码更加紧凑,更易读
其它说明
1. 原始的数据源可以不是列表类型,也可以是元组、生成器等任何可迭代类型
2. 内置的filter函数也可以达到类似的效果
3. itertools模块中的ifilter和ifilterfalse的方法也可以达到类似的效果
4. 如果列表数据量巨大,需要慎重使用,注意内存消耗
总结
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。
原文链接:http://blog.csdn.net/cnweike/article/details/52861629