python列表推导式_令人爱不释手的Python列表推导式

一、采用两种方法,对整数list列表[0, 1, 2, ... , 99999]中的各项求平方。

# 方法一:dtList = list(range(100000))for i in dtList:    dtList[i] = dtList[i] * dtList[i]
# 方法二:dtList = [i*i for i in range(100000)]

“方法一”用时约40毫秒,“方法二”用时约7毫秒。后者只用了前者的六分之一左右的时间。

列表推导式高效!​

7a3167463d69527f757f7fc64be70600.png

列表推导式高效

二、列表推导式中,当for循环遭遇if时。

# 整数列表1至10,对偶数平方,对奇数不变:dtList = [i ** 2  if (i % 2) == 0 else i          for i in range(1, 11)]print(dtList)​# if在for前:用于对for循环结果的转换# 输出结果如下所示:
[1, 4, 3, 16, 5, 36, 7, 64, 9, 100]
# 整数列表1至10,对偶数平方,对奇数丢弃:dtList = [i ** 2            for i in range(1, 11) if (i % 2) == 0]print(dtList)​# if在for后:用于对for循环结果的过滤# 输出结果如下所示:
[4, 16, 36, 64, 100]

​if在前是转换(影响“值”),if在后是过滤(影响“量”)。​

a1ab74002faed8c1155705d71b40d1bb.png

当for循环遭遇if时

三、采用多层for循环,打印漂亮的九九乘法口诀表。

print(    ''.join(                [                '{}x{}={:<4}{}'.format(col, row, col * row, '' if row == col else '')                 for row in range(1, 10)                     for col in range(1, row+1)                ]            )    )# 打印出非常规整、漂亮的九九乘法口诀表:
1x1=1   1x2=2   2x2=4   1x3=3   2x3=6   3x3=9   1x4=4   2x4=8   3x4=12  4x4=16  1x5=5   2x5=10  3x5=15  4x5=20  5x5=25  1x6=6   2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  1x7=7   2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  1x8=8   2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  1x9=9   2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81  
a949dd743a7baaeb7a5f19f03a0441f8.png

list列表推导式

                            列表推导式的优势:                            - 高效                            - 简洁                            - 表达能力强                            列表推导式的劣势:代码可读性稍差
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值