【问题标题】:d= [int(4) for i in range(5)] [duplicate]d= [int(4) for i in range(5)] [重复]
【发布时间】:2015-01-16 17:06:45
【问题描述】:

我无法理解为什么以下在 Python 中有效。我从来没有想过以这种方式创建列表,但我找到了使用这种结构的组合方法。为什么这个结构在语法上是正确的?编译器是如何解析这个语句的?

>>> d= [int(4) for i in range(5)]
>>> d
[4, 4, 4, 4, 4]

【问题讨论】:

  • int(4) 只是 4。
  • Martijn,您链接到的副本也被您自己标记为副本 :-)

标签: python syntax


【解决方案1】:

它被称为 list comprehension,在这种情况下,它只是为 for 部分中的每个项目(值 0 到4)。

int(4) 并不是必须的,您可以使用4 代替。但是,即使 对于这种特殊情况来说有点过头了,我更喜欢更简洁的:

[4] * 5

我自己,将for-loop 表单用于更复杂的事情,例如获取平方小于给定值的奇数立方体:

>>> [i**3 for i in range(99) if i*i < 99 and i%2 == 1]
[1, 27, 125, 343, 729]

是的,一个相当人为的例子,但它展示了如何使用列表推导来做一些真正强大的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多