Python小技巧 2:列表项的推导式和过滤操作

来源:互联网 发布:淘宝怎么批量上架宝贝 编辑:程序博客网 时间:2024/05/18 01:36

典型代码1:

data_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, 3, 4, 0, -1, -2, 6, 8, -9][1, 2, 3, 4, 0, -1, -2, 6, 8, -9]


典型代码2:

data_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, 3, 4, 0, -1, -2, 6, 8, -9][1, 2, 3, 4, 6, 8]


应用场景

需要保持原列表不被改动,需要拷贝一份新的列表数据;只拷贝原列表中复合条件的数据项。


带来的好处

拷贝和过滤操作集中到了一行中,减少了代码的缩进级别,使代码更加紧凑,更易读


其它说明

1. 原始的数据源可以不是列表类型,也可以是元组、生成器等任何可迭代类型

2. 内置的filter函数也可以达到类似的效果

3. itertools模块中的ifilter和ifilterfalse的方法也可以达到类似的效果

4. 如果列表数据量巨大,需要慎重使用,注意内存消耗

0 0
原创粉丝点击