python中列表生成式(list comprehensions)的用法

列表生成式

列表生成式的全称是list comprehensions。是python中内置的一种快速生成新列表的方法。可以由一个列表推导出另外一个新的列表。

  1. 比如如果我们想要生成一个这样的列表:[1*1.2*2,3*3,4*4,…………10*10],如果采用一般的循环的方法,代码应该这样来写:
lst = []
for i in range(1,11):
    lst.append(i*i)
print(lst)

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  1. 但是如果采用列表生成式的话,我们就可以采用一种更为简单的方法来进行操作:

    [x*x for x in range(1,11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

​ 上面这句代码在执行的时候,首先执行 for循环的语句,然后再执行x*x

  1. 复杂一点的,还可以在for循环中添加限制条件:

    [x*x for x in range(1,11) if x % 2 == 0]
    [4, 16, 36, 64, 100]
    

    这样的话,就只选择了偶数来进行操作。

  2. 除了上述添加判断条件的使用方法之外,还可以在列表中添加多个循环条件,比如:

    [a + b for a in 'qr' for b in '14']
    ['q1', 'q4', 'r1', 'r4']
    

    大家可以发现,当添加多个循环结构后,结果呈现了全排列的样式。

  3. for 循环其实可以同时循环多个变量,比如当for进行字典循环时:

    dic = {'a':123,"b":456,"c":789}
    [m + str(n) for m,n in dic.items()]
    ['c789', 'b456', 'a123']
    

    感谢廖雪峰老师的博客,谢谢廖老师的无私分享!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值