为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]
Posted
技术标签:
【中文标题】为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]【英文标题】:Why am I getting float is not iterable in this python snippet? [duplicate]为什么我在这个 python 片段中得到 float 是不可迭代的? [复制] 【发布时间】:2017-07-31 14:28:05 【问题描述】:dist=[a,b,c,d,e]
spset=[1,3]
k=[]
for m in range(1,self.n+1):
if m not in spset:
k+=dist[m]
我正在尝试创建一个列表 k,其中包含 dist
的所有元素,但索引在 spset[]
中的元素除外。我究竟做错了什么?错误是:
k+=dist[m]
TypeError: 'int' object is not iterable
【问题讨论】:
简而言之:a_list = [1,2]; a_list += [3]
导致 a_list
成为 [1, 2, 3]
。如果你有3
而不是[3]
,你应该使用a_list.append(3)
。
【参考方案1】:
问题可能出在@SuperSaiyan 中。此外,这里还有另一种更紧凑、更简单的可能解决方案:
[x for i,x in enumerate(dist) if i not in spset]
【讨论】:
【参考方案2】:因为dist[m]
可能是int
。您正在尝试通过 +=
操作“扩展”列表。你可能想要k.append(dist[m])
。
【讨论】:
以上是关于为啥我在这个 python 片段中得到 float 是不可迭代的? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在 Python 中使用 BeautifulSoup 得到“'ResultSet' 没有属性 'findAll'”?
为啥这个带有 shebang #!/bin/sh 和 exec python 的片段在 4 个单引号内起作用?
为啥我在 python 的 sklearn 中使用管道和没有管道得到不同的值
当 ssl 设置看起来正常时,为啥我在 Python 中得到 [SSL: CERTIFICATE_VERIFY_FAILED]?