首页 > 解决方案 > Python 3,以及带逗号的切片操作数

问题描述

我在 python 中找到了一个符号,我像这样迭代 len(nums):

res = []
res += nums[i]

我收到TypeError: 'int' object is not iterable 错误消息。但是,如果我这样做,

res += nums[i],

表达式通过。我试图查看 Python 文档,但找不到参考。你能帮我找到它或解释为什么我需要一个逗号来添加切片迭代吗?

标签: python

解决方案


您的nums列表可能是一维列表,假设列表是:

nums = [1, 2, 3]

然后当你索引nums列表时:

nums[i]

它会给你一个1or 2or的值3

但是不能将单个值添加到列表中:

>>> [] + 1
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    [] + 1
TypeError: can only concatenate list (not "int") to list
>>> 

但是您的第二个代码有效,因为添加逗号会使单个值成为元组,如下所示:

>>> 1,
(1,)
>>> 

所以当然:

>>> res = []
>>> res += (1,)
>>> res
[1]
>>> 

作品。

如果您这样做,它不仅适用于,逗号:

>>> res = []
>>> res += [1]
>>> res
[1]
>>> 

它也会起作用。


推荐阅读