• 列表推导式


    列表推导式的知识点:

    1.列表推导式就是利用其他列表创建新的列表。

    2.支持if条件判断

    3.可以使用多个for

    列表推导式是利用其他列表创立新的列表,它的工作方式类似于for循环。

    就像这样:

    >>> [x*x for x in range(10)]
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    for循环是这样:

    for m in range(10):
        print(m**2)

    列表表推导式还支持if判断

    >>> [x*x for x in range(10) if x%3 == 0]
    [0, 9, 36, 81]

    列表推导式可以支持多个for语句

    >>> [(x,y)for x in range(3)for y in ['kebi','maoxian','xiaoniao']]
    [(0, 'kebi'), (0, 'maoxian'), (0, 'xiaoniao'), (1, 'kebi'), (1, 'maoxian'), (1, 'xiaoniao'), (2, 'kebi'), (2, 'maoxian'), (2, 'xiaoniao')]

    相对于for循环是这样:

    result = []
    name = ['kebi','maoxian','xiaoniao']
    for x in range(3):
        for y in name:
            print((x,y))

    有个不错的例子:有两个新的列表,要求把首字母相同的元素放在一起创建一个新的列表。

    就像下面这样:

    >>> girls = ['alice','bernice','clarice']
    >>> boys = ['chris','arnold','bob']
    
    >>> [b+'+'+g for b in girls for g in boys if b[0] == g[0]]
    ['alice+arnold', 'bernice+bob', 'clarice+chris']

    在列表里面写条件就是列表推导式,在元祖里面会怎样了?

    >>> (x*y for x in [1,2,3] for y in (4,5,6))
    <generator object <genexpr> at 0x7f254bae0d00>    :返回的是一个可迭代的对象。
    >>> for i in (x*y for x in [1,2,3] for y in (4,5,6)):
    ...     print(i)
    ... 
    4
    5
    6
    8
    10
    12
    12
    15
    18
  • 相关阅读:
    BZOJ 1202 狡猾的商人 差分约束or带权并查集
    BZOJ 1270 雷涛的小猫 dp
    Spring Cloud探路(三)REST 客户端Feign
    AWS Credentials 使用
    Spring Cloud探路(二) Erueka客户端的建立
    Spring Cloud探路(一) Erueka服务器的建立
    Spring-Mybatis 异常记录(1)
    Amazon Kinesis Producer Library 使用记录
    MQTT开发小记(一)
    利用VSCode进行.Net Core初尝试
  • 原文地址:https://www.cnblogs.com/yangmingxianshen/p/7729200.html
Copyright © 2020-2023  润新知