Python,从列表中弹出所有内容但最大值

时间:2017-05-15 06:41:41

标签: python list max pop

我有一个列表,其中包含多达数千个条目及其值:

lst = [
    [entry1, [value1, value2, value3]],
    [entry2, [value4, value5, value6, value7]],
    ...
]

需要从每个条目的值中弹出除最大值之外的所有内容。

您是否知道这样做的顺利方式?谢谢!

1 个答案:

答案 0 :(得分:8)

不要弹出,替换列表:

lst = [[entry, [max(values)]] for entry, values in lst]

这会将整个列表替换为新列表。如果您现有对所有需要查看更改的子列表的引用,那么您可以在[:]循环中为每个for切片分配:{/ p>

for _, values in lst:
    values[:] = [max(values)]