欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-03 20:32:25
[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毫秒。后者只用了前者的***六分之一***左右的时间。列表....

一、采用两种方法,对整数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毫秒。后者只用了前者的***六分之一***左右的时间。

列表推导式高效!

二、列表推导式中,当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在后是过滤(影响“量”)。

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

print(
    ''.join(
                [
                '{}x{}={:<4}{}'.format(col, row, col * row, '\n' 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  



                        列表推导式的优势:

                        - 高效
                        - 简洁
                        - 表达能力强

                        列表推导式的劣势:代码可读性稍差

本文地址:https://blog.csdn.net/weixin_43838715/article/details/110220205