相关疑难解决方法(0)

如何按字典值对字典列表进行排序?

我有一个字典列表,并希望每个项目按特定的属性值排序.

考虑下面的数组,

[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
Run Code Online (Sandbox Code Playgroud)

排序时name,应该成为

[{'name':'Bart', 'age':10}, {'name':'Homer', 'age':39}]
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary list data-structures

1722
推荐指数
19
解决办法
69万
查看次数

sort(dict,dict.get)如何处理重复值

假设我在python中有一个字典,我按值对键进行排序,如下所示

my_dict = {'a':5, 'b':4, 'c':6, 'd':3, 'e':2}
sorted_list = sorted(my_dict, key=my_dict.get)
sorted_list
['e', 'd', 'b', 'a', 'c']
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果我在字典中有冲突(关于值)

my_dict = {'a':5, 'b':4, 'c':5, 'd':3, 'e':2, 'f':4, 'g':3}
sorted_list = sorted(my_dict, key=my_dict.get)
sorted_list
['e', 'd', 'g', 'b', 'f', 'a', 'c']
Run Code Online (Sandbox Code Playgroud)

在我看来,在重复的情况下,列表按字典中的顺序(数字顺序或插入顺序,而不是排序顺序)排序.我可以认为它适用于所有情况吗?

编辑1:我的键将是整数,如果值发生冲突,我希望生成的键按其值排序(最高位)

EDIT2:添加以下参数有助于我的问题.但是,在我的情况下,我希望值以升序排序,但键要按降序排序.下面将导致降序键= lambda x:(x [1],x [0])

python sorting dictionary

2
推荐指数
1
解决办法
845
查看次数

将字典列表按另一个列表排序

按另一个列表对字典列表进行排序。我有带有字典的列表(IN),我想按另一个列表(sortValue)进行排序。

IN = [{
        "id": "a", 
        "val": "Value", 
        "val1": "Value1"
 }, 
 {
        "id": "b", 
        "val": "Value", 
        "val1": "Value1"
 }, 
 {
        "id": "c", 
        "val": "Value", 
        "val1": "Value1"
 }]

sortValue = ['b','c','a']
Run Code Online (Sandbox Code Playgroud)

我想要输出

OUT  = [{
        "id": "b", 
        "val": "Value", 
        "val1": "Value1"
    }, 
    {
        "id": "c", 
        "val": "Value", 
        "val1": "Value1"
    },
    {
        "id": "a", 
        "val": "Value", 
        "val1": "Value1"
    }]
Run Code Online (Sandbox Code Playgroud)

如何得到这样的东西?

我试过了:

OUT = []
for xx in sortValue:
    for x in IN:
        if x['id'] == xx:
            OUT.append(x)
print …
Run Code Online (Sandbox Code Playgroud)

python sorting

0
推荐指数
1
解决办法
706
查看次数

标签 统计

python ×3

sorting ×3

dictionary ×2

data-structures ×1

list ×1