【问题标题】:2to3 range(...) -> list(range(...))2to3 范围(...)-> 列表(范围(...))
【发布时间】:2013-03-13 11:35:26
【问题描述】:

我知道 python 2to3 将所有xrange 更改为range,我认为这没有任何问题。我的问题是它如何将range(...) 更改为list(range(...)):它是愚蠢的,只是盲目地搜索并替换它们,还是它足够聪明,可以判断何时不需要列表并将其保留为range 将是更好?

【问题讨论】:

    标签: python list python-2to3


    【解决方案1】:

    我不知道它到底有多智能,但它肯定不会将list() 添加到每个 range()。

    例如:

    print(range(10))
    

    改为:

    print(list(range(10)))
    

    但是,以下内容:

    for el in range(10):
      print(el)
    

    保持不变。

    这清楚地表明它比盲目的搜索和替换更复杂。

    【讨论】:

    • 我注意到,如果我将名称范围重新绑定到其他内容,然后在脚本中稍后使用它,它仍然会处理它。所以它不可能很聪明..
    • 它也破坏了我的文档测试,因为它忽略了那些:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多