python-列表生成式(二)(应用实例)

本文作者:黎智煊,叩丁狼高级讲师。原创文章,转载请注明出处。

上一节说到了列表生成式的原理和基本语法,现在就写一些实例进行说明

我们可以对几个生成列表的要求分别通过“不使用列表生成式”和“使用列表生成式”来实现,然后做个对比总结。

实例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

猜你喜欢

转载自blog.csdn.net/wolfcode_cn/article/details/84847413
今日推荐