【问题标题】:Print range in Python 2.7 and 3.4 different [duplicate]Python 2.7 和 3.4 中的打印范围不同 [重复]
【发布时间】:2016-04-21 15:04:38
【问题描述】:

如果在 Python 2.7 中运行以下代码行:

print(range(0, 20))

返回:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

但在 3.4 中它返回:

范围(0, 20)

我知道这两个版本之间存在差异,我只是不知道在这种情况下它们是什么。有人能回答这两个问题吗?

  1. 是什么让它们与众不同?
  2. 如何让 3.4 返回 list 以及如何让 如果我想要的话,让 2.7 返回 statement

【问题讨论】:

  • list(range(0, 20))?

标签: python range


【解决方案1】:

Python 2 和 3 有点不同。

Range 在版本 3 中无法满足您的要求。再举一个例子,在 python3 中,xrange 不再使用。

回到您的问题,在Python3中执行以下操作

ab = list(range(20))

再一次,谷歌是你的朋友... ;)

找出python2python3here之间的主要区别

PS:这里的一位绅士很好地建议我使用 Python3 而不是 Python2,因为 Py2 将在 2020 年被弃用。考虑一下,很长一段时间,但实际上并没有那么长。

【讨论】:

  • 谢谢@jackjameshoward。祝您学习顺利
【解决方案2】:

range 现在是一个迭代器,它在什么时候返回他的值 你一个接一个地迭代它。

如果您想获取整个列表,您必须调用列表:

list(range(0, 20))

但在大多数情况下,不使用 list(range(...)) 会更好地使用 range,因为它可以节省内存。反过来,第二个版本中的范围 立即创建整个列表,在第二个 python 中也有一个特殊的 xrange 返回迭代器,就像在第三个中一样。

更多详情请点击here

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多