如何使用literal_eval python查找长度

如何使用literal_eval python查找长度,python,Python,我想找出从中得到的最大长度 print (( max(sum(literal_eval(sub)) for sub in row))) 这给了我最大值,但是如何在python中获得最大和的长度呢 我的意见是 [0.0],"[0.0, 0.0]","[1.0, 1.0,1.0]","[1.0, 1.0, 1.0, 1.0]","[0.0, 0.0, 0.0]","[0.0, 0.0]",[0.0] [0.0],"[0.0, 0.0]","[0.0, 0.0, 0.0]","[1.0, 1.0,

我想找出从中得到的最大长度

print (( max(sum(literal_eval(sub)) for sub in row)))
这给了我最大值,但是如何在python中获得最大和的长度呢

我的意见是

[0.0],"[0.0, 0.0]","[1.0, 1.0,1.0]","[1.0, 1.0, 1.0, 1.0]","[0.0, 0.0, 0.0]","[0.0, 0.0]",[0.0]

[0.0],"[0.0, 0.0]","[0.0, 0.0, 0.0]","[1.0, 1.0, 1.0, 0.0]","[0.0, 0.0, 0.0]","[1.0, 1.0]",[1.0]
首先通过max,找到上面例子中我得到的max (4) (2)
现在我想找到最大和的长度,在这种情况下是4如果你想要列表的最大长度,你可以使用列表理解和
literal\u eval
来获得列表,然后使用
max
sum
作为它的键来获得最大
sum
的列表,然后使用
len
来获得长度:

>>> s=[0.0],"[0.0, 0.0]","[0.0, 0.0, 0.0]","[1.0, 1.0, 1.0, 1.0]","[0.0, 0.0, 0.0]","[0.0, 0.0]",[0.0]
>>> len(max([ast.literal_eval(i) if isinstance(i,str) else i for i in s],key=sum))
4

max()
返回一个整数。您的意思是像
len(str(您的最大值))
这样的东西吗?您是否试图从
某个三位数字(如782)返回
3
?或者您正在尝试获取产生最高总和的
sub
的长度?@lanaid
max
不返回int值。它返回
,甚至可以是一个对象。例如,
max([1],[2,3])
将返回
[2,3]
是的,我想要这个@IanAuldWhat's the value of
row
?这个代码只给出了我想要找到列表最大和的最大长度@Kasra@abd对不起,我听不懂你能更清楚地解释一下你想要什么吗?@Kasra我有问题的代码给了我[0,0]、[1,1]、[1,0,0]等列表的最大和给我最大和2,我想找到最大的长度,在这种情况下是2@abd我的代码会给你你想要的东西!是的,它成功了,谢谢你@Kasra