设为首页收藏本站
查看: 78|回复: 0

[PHP] python列表生成式用法

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2017-5-14 02:44:00 | 显示全部楼层 |阅读模式
    列表生成式:List Comprehensions,是python中非常非常简单但却最常用的一个功能。
    根据名字就能知道,列表生成式所返回的应该是list类型,它能用最简单最易懂的写法生成所需要的列表。
    例:我需要得到1-100这个list的所有数的平方所组成的一个list。此时可以用for循环:
    Python代码
    a = []
    for value in range(1, 101):
    a.append(value * value)

    print(a)
    此时得到的a就是1-100中每个数的平方所组成的数组。这个方法很简单,但是使用列表生成式更简单。
    Python代码
    a = [value * value for value in range(1,101)]
    print(a)
    得到的a与上一个方法中的a一摸一样。

    在 a = [value * value for value in range(1,101)] 中,value * value是一个表达式,value这个数来源于表达式后面的for循环,for循环每循环一次,就计算一次表达式,最后将for循环中每次循环的数的计算结果都保存在一个列表中。最后赋值给a。


    在列表生成式中,也可以使用多次循环。比如:

    Python代码
    a = [x * y for x in range(1,3) for y in range(3,5)]
    print(a)
    生成结果为:
    终端代码
    [3, 4, 6, 8]
    range(1,3)为[1, 2], range(3,5)为[3,4],x来自range(1,3),y来自range(3,5)
    结果为:1*3, 1*4, 2*3, 2*4

    此外,还可以在列表生成式中增加条件判断:
    Python代码
    a = [value * value for value in range(1, 11) if value % 2 == 0]
    print(a)

    #结果为:
    [4, 16, 36, 64, 100]
    在for循环后面给value值增加条件选择。此例子是计算1-10中偶数的平方
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表