python - Python 3,以及带逗号的切片操作数
问题描述
我在 python 中找到了一个符号,我像这样迭代 len(nums):
res = []
res += nums[i]
我收到TypeError: 'int' object is not iterable
错误消息。但是,如果我这样做,
res += nums[i],
表达式通过。我试图查看 Python 文档,但找不到参考。你能帮我找到它或解释为什么我需要一个逗号来添加切片迭代吗?
解决方案
您的nums
列表可能是一维列表,假设列表是:
nums = [1, 2, 3]
然后当你索引nums
列表时:
nums[i]
它会给你一个1
or 2
or的值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]
>>>
它也会起作用。
推荐阅读
- ruby - eventmachine安装中的捆绑安装错误
- python - 带有计算 python 的数据透视表
- c++ - 如何使用 SDL 绘制 45x45 网格
- eslint - 无法使用 eslint cli 启用无控制台
- square-connect - Square 创建付款时设置 app_fee_money 的权限不足
- node.js - 将来自 Azure node.js Web 应用的请求发布到另一台服务器。请求问题:连接 EACCES 错误
- spring - 用于调用 PostgreSQL 函数的 Spring Boot JPA 本机查询
- entity-framework - 使用 lambda 将 Igrouping 匿名类型转换为字符串列表
- c++ - 扫描密文文档,猜测密钥,计算分布
- python - 如何在熊猫中创建具有最大功能的列