Python 列表生成式

Python 列表生成式

  • 最传统的方法
a = [1, 2, 3, 4, 5]
  • 稍微高级一点的方法
a = list(range(1, 6))

out: [1, 2, 3, 4, 5]

对于简单的列表上面两种方法足矣,但是如果要生成复杂的列表,比如:

list = [1*1, 2*2, ...... , 9*9, 10*10]
  • 方法一:使用循环语句进行创建
a = [] #创建一个空列表
for i in range(1, 11):
    a.append(i * i) #往列表里添加元素

out: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

  • 方法二:列表生成式
a = [i * i for i in range(1, 11)]

out: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

这句代码的意思就是从 range(1, 11) 中依次取出 i 并进行 i * i 运算,将 i * i 的值存入列表 a

列表生成式的原理依然很简单,但是灵活使用列表生成式可以让你的代码质量有一个质的飞跃

这里列举两种黑科技用法:

  • for 循环后使用 if 判断语句筛选生成的元素
a = [i * i for i in range(1, 11) if i % 2 = 0]

out: [4, 16, 36, 64, 100]

if 后面的 i % 2 = 0 即要求 i 是偶数,所以列表中的元素都是 range(1, 11) 中的偶数 i * i 的值

  • 双重循环
a = [x + y for x in '123' for y in 'ABC']

out: [‘1A’, ‘2B’, ‘3C’]

第一个循环遍历取得的 x 与第二个循环遍历取得的 y 相加后存入列表,同理:也可以有三重循环或者更多的多重循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值