簡體   English   中英

如何在嵌套列表中獲取最大字符串長度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM