2024-10-03 21:31:49 发布
网友
我有一张单子,例如
l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc']
我怎样才能得到列表中最长元素出现之前的所有元素,而不是后面的元素?在
这是有效的:
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中找到它的索引,以防万一。在
max()
maxLenStr
idx
这是一种方法:
l = ['abc34','def987','ghij','klmno','pqrstuvwxyz1234567','98765','43','210abc'] new_list = l[:l.index(max(l, key=len))]
这是有效的:
它只迭代列表一次以确定最大长度,而使用}对所有元素迭代两次。它还将最大长度的字符串存储在
max()
和{maxLenStr
中,并在idx
中找到它的索引,以防万一。在这是一种方法:
相关问题 更多 >
编程相关推荐