【问题标题】:Python 3.8 "TypeError: 'int' object is not iterable" when trying to add an int to a list尝试将 int 添加到列表时,Python 3.8 “TypeError:'int' object is not iterable”
【发布时间】:2020-09-26 22:17:05
【问题描述】:

我正在制作一个程序,它会生成一个从 1 到 100 的随机数,然后,如果该数字不在列表中,它会将其添加到列表中并继续这样做,直到列表中有 100 个唯一数字列表。到目前为止,这是我的代码:

from random import randint
numbers = []
loop = True
while loop == True:
  number = randint(1, 100)
  if number in numbers:
      print("{} is there already!".format(number))
  else:
    numbers += number

但它一直给我这个错误:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
    numbers += number
TypeError: 'int' object is not iterable

但是,我很确定,我的代码没有任何问题。我该怎么办?

【问题讨论】:

  • += 需要一个可迭代的列表,例如另一个列表。你想要.append
  • 谢谢!这有很大帮助。感谢您这么快的回复!

标签: python list int typeerror


【解决方案1】:

我认为您正在尝试在数字列表中随机添加 1-100 的随机数,并且您不想多次添加任何内容

from random import randint
numbers = []
loop = True
while loop == True:
  number = randint(1, 100)
  if number in numbers:
      print("{} is there already!".format(number))
  else:
    numbers += [number]

这样就可以了。

我认为您应该使用追加而不是添加,因为它花费的时间要少得多。 它看起来像这样

from random import randint
numbers = []
loop = True
while loop == True:
  number = randint(1, 100)
  if number in numbers:
      print("{} is there already!".format(number))
  else:
    numbers.append(number)

【讨论】:

    【解决方案2】:

    如果你只是想创建一个从 1 到 100 的唯一数字的随机列表

    这可能是更高效的代码

    my_list = list(range(1,101))
    random.shuffle(my_list)
    print(my_list)
    

    您可以修复随机种子,这样输出会被打乱,但每次运行时都不会改变

    my_list = list(range(1,101))
    random.seed(123)
    random.shuffle(my_list, random=None)
    print(my_list)
    

    至于您的代码,您不能使用 += 对列表执行 .append(它将您的号码作为参数并将其添加到列表末尾)

    numbers.append(number)

    文档:https://docs.python.org/2/tutorial/datastructures.html

    【讨论】:

      【解决方案3】:

      只需将numbers += number 替换为numbers.append(number)。

      【讨论】:

        猜你喜欢
        • 2022-12-15
        • 2020-11-07
        • 1970-01-01
        • 2016-01-09
        • 2019-04-12
        • 2016-02-18
        • 2022-11-02
        • 2018-06-29
        • 2018-12-10
        相关资源
        最近更新 更多