![](/img/trans.png)
[英]Pandas column of lists: How to get the average, max length, and standard deviation of the list lengths of that column
[英]How to get a max string length in nested lists
它们是我之前帖子的后续问题(从列表列表中重新打印表格)
我正在尝试获取以下嵌套列表的字符串最大值:
tableData = [['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'],
['dogs', 'cats', 'moose', 'goose']]
for i in tableData:
print(len(max(i)))
这给了我 7、5、5。但是“樱桃”是 8
我在这里想念什么? 谢谢。
你已经完成了最大 word的长度。 这给出了错误的答案,因为单词是按字典顺序排列的:
>>> 'oranges' > 'cherries'
True
您可能想要的是单词的最大长度:
max(len(word) for word in i)
或等效地:
len(max(i, key=len))
在字符串操作中max
将从字符串中返回最大的字母字符,而不是长度的基础。 所以你必须做这样的事情。
len(max(sum(tableData,[]),key=len))
sum(tableData,[])
将转换成list of list
,以list
此列表通过的名单有助于迭代。
每行长度
In [1]: [len(max(i,key=len)) for i in tableData]
Out[1]: [8, 5, 5]
看到不同,
In [2]: max(sum(tableData,[]))
Out[2]: 'oranges'
In [3]: max(sum(tableData,[]),key=len)
Out[3]: 'cherries'
您正在打印每行中最大元素的长度。 Python 计算max
字符串元素作为字典中最后出现的元素(字典排序)。 你想要的是max(len(s) for s in i)
而不是len(max(i))
for row in tableData:
print(max(len(s) for s in row))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.