gpt4 book ai didi

python - 通过键从 listOfLists 组中获取最小的项目

转载 作者:行者123 更新时间:2023-11-28 19:57:55 24 4
gpt4 key购买 nike

我有一个列表

listOfLists = [['key2', 1], ['key1', 2], ['key2', 2], ['key1', 1]]

内部列表的第一项是键。内部列表的第二项是值。

我想得到一个输出 [['key1', 1], ['key2', 1]] 它给列表它的值是具有相同值的列表中最小的key 和 key 的输出分组(我的英文很差所以就用 Sql Syntax 的概念)

我写了一些这样的代码:

listOfLists = [['key2', 1], ['key1', 2], ['key2', 2], ['key1', 1]]
listOfLists.sort() #this will sort by key, and then ascending by value
output = []
for index, l in enumerate(listOfLists):
if index == 0:
output.append(l)
if l[0] == listOfLists[index - 1][0]:
#has the same key, and the value is larger, discard
continue
else:
output.append(l)

这似乎不够聪明有没有更简单的方法来完成这项工作?

最佳答案

使用字典怎么样(不需要对数据进行排序)?

>>> listOfLists = [['key2', 1], ['key1', 2], ['key2', 2], ['key1', 1]]
>>> d = {}
>>> for k,v in listOfLists:
d.setdefault(k, []).append(v)

>>> d = {k:min(v) for k,v in d.items()}
>>> d
{'key2': 1, 'key1': 1}

如果你愿意,你可以转换成列表

关于python - 通过键从 listOfLists 组中获取最小的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com