无法计算列表中元组中的项目

问题描述

我目前有一个元组列表,我试图计算列表中的元组数,以便我可以进行其他计算,但似乎无法正常工作。

ties = [(84,40,{'variable1' : 0.11225,'variable2': -0.2581}),(84,4,{'variable1' : -0.18855,'variable2': -0.6458}),23,{'variable1' : 0.05144,'variable2': -0.7581})]

ties = list((int(j) for i in ties for j in i))

res = len(ties) 

#alternatively I also tried

from itertools import chain 

res = len(list(map(int,chain.from_iterable(ties))))

以上(两者)都会引发错误TypeError: 'int' object is not iterable,但我不明白为什么。有想法吗?

谢谢!

***编辑***

修复了语法错误,现在可以正常运行,谢谢大家的建议

解决方法

isinstance过滤的列表推导,假设ties实际上是以下对象(因为OP的语法无效)

ties = [
    (84,40,{'variable1' : 0.11225,'variable2': -0.2581}),(84,4,{'variable1' : -0.18855,'variable2': -0.6458}),23,{'variable1' : 0.05144,'variable2': -0.7581})
]

count_tuples = len([o for o in ties if isinstance(o,tuple)])

打印:3

,

不能重复使用句柄。因此,您在尝试执行代码时遇到错误。另外,您发布的以下代码给出了语法错误。

ties = [(84,84,'variable2': -0.7581})]

您似乎错过了 84,4 之前的开括号,又错过了 84,23 之前的开括号。

尝试以下操作:

ties = [(84,'variable2': -0.7581})]

ties_len = list((len(i) for i in ties))
,

如果只想知道列表中的元组数,则只需要这样做:

ties = [
    (84,'variable2': -0.7581})
]

res = len(ties)
# 3

如果要使用列表中具有元组长度的列表,则需要使用:

res = [len(tie) for tie in ties]
# [3,3,3]

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...