【问题标题】:Make a list of the numbers from one to one million and then use a for loop to print the numbers列出从一到一百万的数字列表,然后使用 for 循环打印数字
【发布时间】:2020-05-09 04:37:44
【问题描述】:

我正在从 Eric Matthes 的一本名为 Python Crash Course 的书中做一个练习。我尝试将此作为可能的解决方案:

millions= list(range(1,1000001))
for million in range:

    print(million)

但是,我得到了这个错误:

Traceback(最近一次调用最后一次):文件 “expendable_exerciseloop.py”,第 5 行,在 百万范围内:TypeError: 'type' object is not iterable

【问题讨论】:

  • 如果你搜索“Python for range example”这个短语,你会发现比我们在这里的答案更能解释它的资源。

标签: python python-3.x


【解决方案1】:

range 是一个生成器。如果您实际上不需要索引项目,则应避免构建包含一百万个项目的内存占用列表。为了迭代range 生成的百万个项目,您可以简单地使用for 循环来迭代生成器:

for i in range(1, 1000001):
    print(i)

【讨论】:

    【解决方案2】:

    你想做的事

    millions= range(1,1000001)
    for million in millions:
        print(million)
    

    Range 会在您进行时生成列表,因此无需尝试将其设为列表。

    真正发生的事情是 range() 在您每次请求时都会生成一个值。所有的值都不会存储在任何地方。

    【讨论】:

      【解决方案3】:

      你正在寻找这个:

      list=np.arange(1,1000001,1).tolist()
      for i in list:
          print(i)
      

      已编辑,因此您实际上使用了一个列表。

      np.arange(a,b,c) 创建一个以 c 步为间隔从 a 到 b-1 的数组,然后我把它变成一个列表。

      【讨论】:

        【解决方案4】:

        请注意range 是一个函数,而不是一个可迭代对象。因此它需要论证。查看此材料以获取更多信息:https://www.w3schools.com/python/ref_func_range.asp

        【讨论】:

        • 虽然有用,但您的回答最好保留作为对 OP 问题的评论,因为它没有说明如何修改他们的代码以使其工作。请edit 添加实现您的建议所需的代码。或者考虑删除,将其添加为评论。 SO 的答案通常需要包含被视为“竞争”答案的代码。从好的方面来说,您已经包含了一个很好的解释和一个源链接,这也是来自评论/建议的答案的一个区别元素。独立、完整且解释清楚的答案最有可能被点赞
        【解决方案5】:
        millions= list(range(1,1000001))
        
        
        for million in range(1,1000001):
        
            print(million)
        

        【讨论】:

        • 只提供代码是可以接受的,但是当答案另外提供为什么它解决原始问题,以及为什么它可能比其他现有答案更可取。
        • 不过,更重要的是,这基本上是对一年前提供的答案的完全重复。请务必在提交您自己的答案之前查看其他答案。
        • 仅代码(和仅链接)响应最好保留为评论,而不是答案。虽然此代码可能会解决 OP 的问题,但最好包括说明您的代码如何解决 OP 的问题。这样,未来的访问者可以从您的帖子中学习,并将其应用到他们自己的代码中。 SO 不是编码服务,而是知识资源。高质量、自包含、完整的答案更有可能获得支持,并且是 SO 平台具有的一些优势,使其与论坛区分开来。您可以edit 添加解释,并使用源文档补充您的推理。
        • SO 平台的一个优势在于用户对有用的答案和评论进行投票。另一方面,复制已经存在的答案会降低该平台的实用性,这与传统论坛不同。由于这篇文章没有添加任何新的或有用的东西,它很可能被否决,甚至可能被删除。为有用的回复点赞是免费的、慷慨的、有益的,并且可以帮助用户为他们的用例找到最佳解决方案。也不需要重新发明轮子:-)
        猜你喜欢
        • 1970-01-01
        • 2022-01-02
        • 2019-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-15
        • 2021-03-06
        相关资源
        最近更新 更多