本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。
上一节说到了列表生成式的原理和基本语法,现在就写一些实例进行说明
我们可以对几个生成列表的要求分别通过“不使用列表生成式”和“使用列表生成式”来实现,然后做个对比总结。
实例1:生成一个从3到10的数字列表
不使用列表生成式实现
list1 = range(3, 11)
使用列表生成式实现
list2 = [x for x in range(3, 11)]
实例2:生成一个2n+1的数字列表,n为从3到11的数字
不使用列表生成式实现
list3 = []
for n in range(3, 11):
list3.append(2*n + 1)
使用列表生成式实现
list4 = [2*n + 1 for n in range(3, 11)]
实例3:过滤出一个指定的数字列表中值大于20的元素
L = [3, 7, 11, 14,19, 33, 26, 57, 99]
不使用列表生成式实现
list5 = []
for x in L:
if x < 20:
list5.append(x)
使用列表生成式实现
list6 = [x for x in L if x > 20]
实例4:计算两个集合的全排列,并将结果作为保存至一个新的列表中
L1 = ['香蕉', '苹果', '橙子']
L2 = ['可乐', '牛奶']
不使用列表生成式实现
list7 = []
for x in L1:
for y in L2:
list7.append((x, y))
使用列表生成式实现
list8 = [(x, y) for x in L1 for y in L2]
实例5:将一个字典转换成由一组元组组成的列表,元组的格式为(key, value)
D = {'Tom': 15, 'Jerry': 18, 'Peter': 13}
不使用列表生成式实现
list9 = []
for k, v in D.items():
list9.append((k, v))
使用列表生成式实现
list10 = [(k, v) for k, v in D.items()]
想获取更多技术干货,请前往叩丁狼官网:http://www.wolfcode.cn/all_article.html