上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.2 列表解析式
列表解析式是Python提供的一种从列表中便捷地抽取数据的方式,类似于数学上集合的表示方式。实际上,它完全可以由for循环语句代替实现,只不过会略显烦琐。来看一个例子,代码如下。
In [1]: list1 = [1, 2, 3, 4, 5] In [2]: l_even = [i for i in list1 if i%2 == 0] In [3]: l_even Out[3]: [2, 4]
对于l_even,完全可以通过for循环语句获取,代码如下。
In [4]: l_even = [] In [5]: for i in list1: ...: if i%2 == 0: ...: l_even.append(i) ...: In [6]: l_even Out[6]: [2, 4]
后者明显更加麻烦一点。对于列表解析式,初学者要学会通过这种拆解的方法理解它的使用意图。自己在工作学习中也不用刻意去追求复杂的列表解析式,熟悉之后便能运用自如了。一定注意不要为了追求所谓的简捷而牺牲代码的可读性。