• 列表、元组、字典推导式


    一、列表推导式:

    (1)生成指定范围的数值列表,语法格式如下:

    list = [Expression for var in range]

       参数说明:

    • list:表示生成的列表名称
    • Expression:表达式,用于计算新列表的元素
    • var:循环变量
    • range:采用range()函数生成的range对象

      例如:生成一个包含10个随机数的列表,要求数的范围在10~100(包含)之间,代码如下:

    1 import random
    2 randomnumber = [random.randint(10, 100) for i in range(10)]
    3 print(randomnumber)
    4 
    5 # 输出结果:
    6 # [38, 12,  28, 26, 58, 67, 100, 41, 97, 15]

    (2)根据列表生成指定需求的列表:语法格式如下:

    newlist = [Expression for var in list]

      参数说明:

    • newlist:表示新生成的列表名称
    • Expression:表达式,用于计算新列表的元素
    • var:变量,值为后面列表的每个元素值
    • list:用于生成新列表的原列表

      例如:定义一个商品价格的列表,然后应用列表推导式生成一个将全部商品价格打五折的列表,具体代码如下:

    1 price = [1200, 5330, 2988, 6200, 1998, 8888]
    2 sale = [int(x/2) for x in price]
    3 print(sale)
    4 
    5 # 输出结果:
    6 # [600, 2665, 1494, 3100, 999, 4444]

    (3)从列表中选择符合条件的元素组成新的列表,语法格式如下:

    newlist = [Expression for var in list if condition]

      参数说明:

    • newlist:表示新生成的列表名称
    • Expression:表达式,用于计算新列表的元素
    • var:变量,值为后面列表的每个元素值
    • list:用于生成新列表的原列表
    • condition:条件表达式,用于指定筛选条件

    例如:定义一个商品价格的列表,然后应用列表推导式生成一个商品价格高于5000的列表,具体代码如下:

    1 price = [1200, 5300, 2988, 6200, 1988, 8888]
    2 sale = [x for x in price if x>5000]
    3 print(sale)
    4 
    5 # 输出结果:
    6 # [5300, 6200, 8888]

    二、元组推导式:

    元组推导式类似于列表推导式,只需将列表推导式中的中括号 '[]' 修改为小括号 '()'即可。例如,生成一个包含10个随机数的元组:

    1 import random
    2 randomnumber = (random.randint(10, 100) for i in range(10))
    3 print(randomnumber)
    4 
    5 # 输出结果:
    6 <generator object <genexpr> at 0x0000000003056620>

      由此可见,元组推导式生成的结果并不是一个元组或者列表,而是一个生成器对象(可以使用for循环调用生成器对象中的元素值,日常写代码中使用这种方式存储一个元组可以大大节省内存空间)。可以使用tuple()函数(或list()函数)将生成器对象转换为元组(或列表)。上面代码修改如下:

    1 import random
    2 randomnumber = (random.randint(10, 100) for i in range(10))
    3 randomnumber = tuple(randomnumber)
    4 print(randomnumber)
    5 
    6 # 输出结果:
    7 # (76, 54, 74, 63, 61, 71, 53, 75, 61, 55)

    三、字典推导式:

    使用字典推导式可以快速生成一个字典,它的表现形式和列表推导式类似。

      例如:生成一个包含4个随机数的字典,随机数在10~100(包含)之间,字典的键用数字表示,代码如下:

    1 import random
    2 
    3 randomdict = {i:random.randint(10, 100) for i in range(1, 5)}
    4 print(randomdict)
    5 
    6 # 输出结果:
    7 # {1:21, 2:85, 3:11, 4:65}
  • 相关阅读:
    wxpython 支持python语法高亮的自定义文本框控件的代码
    小米平板6.0以上系统如何不用Root激活Xposed框架的步骤
    vivo4.0系统怎么不ROOT激活Xposed框架的教程
    oppo设备怎么样无需root激活XPOSED框架的教程
    OPPO A7x在哪里开启usb调试模式的详细经验
    python将两个数组合并成一个数组的两种方法的代码
    (最详细)小米MIX的Usb调试模式在哪里打开的教程
    (简单)华为荣耀9i LLD-AL20的Usb调试模式在哪里开启的方法
    linux c ---raise 使用范例的代码
    oppo8.0系统怎么无需Root激活Xposed框架的经验
  • 原文地址:https://www.cnblogs.com/zzmx0/p/12673898.html
Copyright © 2020-2023  润新知