gpt4 book ai didi

python - 使用 lambda 对字典的元素进行排序

转载 作者:行者123 更新时间:2023-11-28 20:31:40 30 4
gpt4 key购买 nike

我正在尝试对字典中的值进行排序。每个值都是 (element, [element,element...]) 形式的元组。

所以如果它看起来像这样:

{'5': (2, ['6']), '1': (3, ['4', '3']), '7': (3, ['9', '11', '12'])}

它应该是这样结束的:

{'5': (2, ['6']), '1': (3, ['3', '4']), '7': (3, ['11', '12', '9'])}

如您所见,顺序是字典顺序。

我尝试使用 lambda 进行排序,但无法进入列表:

sortedDict = sorted(orderDict.values(),key=lambda x:x[0])

最佳答案

你快到了,你想要做的是在值的第二个元素上使用 sortedkey=str (如果你不确定你的元素总是 str 类型)。

此外,您不需要为此使用 lambda 表达式。

这可以简单地使用 dict comprehension 来完成:

d = {'5': (2, ['6']), '1': (3, ['4', '3']), '7': (3, ['9', '11', '12'])}

sorted_d = {k: (v0, sorted(v1, key=str)) for k, (v0, v1) in d.items()}

如果您想就地执行此操作,则 answer of @ZeroPiraeus是推荐的方式。由于 sort 是就地操作,原则上您可以将其打包在列表理解中。 但是请注意,这不是推荐的方式,因为您将生成一个您不使用的列表:

In [38]: [v1.sort(key=str) for _, v1 in d.values()]                            
Out[38]: [None, None, None]

关于python - 使用 lambda 对字典的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53895327/

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