Python:怎么能我在最长的元素之前得到列表中的所有元素?

2024-10-03 21:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一张单子,例如

l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc']

我怎样才能得到列表中最长元素出现之前的所有元素,而不是后面的元素?在


Tags: 元素列表单子ghijklmnodef987pqrstuvwxyz1234567abc34
2条回答

这是有效的:

lst = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc']
idx, maxLenStr = max(enumerate(lst), key=lambda x:len(x[1]))
sublist = lst[:idx]

它只迭代列表一次以确定最大长度,而使用max()和{}对所有元素迭代两次。它还将最大长度的字符串存储在maxLenStr中,并在idx中找到它的索引,以防万一。在

这是一种方法:

l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc']
new_list = l[:l.index(max(l, key=len))]

相关问题 更多 >