zoukankan      html  css  js  c++  java
  • 令人爱不释手的Python列表推导式

    此文转载自:https://blog.csdn.net/weixin_43838715/article/details/110220205#commentBox

    一、采用两种方法,对整数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, '
    ' 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  
    
    
    
                            列表推导式的优势:
    
                            - 高效
                            - 简洁
                            - 表达能力强
    
                            列表推导式的劣势:代码可读性稍差
    
       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
    串口通讯接收数据的处理
    在C#程序设计中使用Win32类库
    C# Mutex对象学习经验
    我眼中的C# 3.0 Written by Allen Lee
    利用C#鼠标拖动TreeView节点
    richtextbox内文字自动滚动的例子
    在十六进制字符串与数值类型之间转换 C# 编程指南
    如何:指定符号位置和加载行为
    杂记20110321
  • 原文地址:https://www.cnblogs.com/phyger/p/14055972.html
Copyright © 2011-2022 走看看