相关疑难解决方法(0)

在Python中按列表中的值对字典中的键进行排序

我已经看过这篇文章这篇文章以及其他许多文章,但还没有找到我的问题的答案,也无法弄明白.

我有一份清单.例如,它看起来像:

Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]}
Run Code Online (Sandbox Code Playgroud)

我想根据列表中的特定项返回已排序(降序/反向)的键列表.例如,我想根据每个列表中的第4项对a,b,c进行排序.

这应该返回sorted_keys = ['b','a','c']按值排序的列表[6,4,2].

合理?请帮忙......谢谢!

python sorting dictionary list

3
推荐指数
1
解决办法
4601
查看次数

Python:用两个变量理解lambda表达式

在查找计算列表产品的简明方法的同时,我对此响应感到有些困惑.这是有问题的代码:

reduce(lambda x,y:x*y,[3,4,5])

有人可以解释为什么这有效吗?我熟悉使用lambda涉及一个变量的表达式(例如,当使用自定义比较函数进行排序时),但我很困惑为什么以及如何工作.

python lambda

3
推荐指数
1
解决办法
6955
查看次数

使用另一个列表作为"过滤器"对python中的dicts列表进行排序?

b = [{'id': 'a'}, {'id': 'c'}, {'id': 'b'}, {'id': 'e'}]
Run Code Online (Sandbox Code Playgroud)

我需要这个成为:

b = [{'id': 'a'}, {'id': 'c'}, {'id': 'e'}, {'id': 'b'}]
Run Code Online (Sandbox Code Playgroud)

此新订单由另一个列表定义.

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

......正如您所看到的,带有dicts的列表现在具有一系列在my_filter变量上显示的ID .

我能够重新安排这个但是使用了一堆fors而且效率不高.你知道更好的方法吗?我已经知道如何按字典的值对字典列表进行排序,但我需要这个顺序由另一个列表定义.

编辑:my_filter被命名filter,我改变了Dave Kirby的推荐,因为它是内置的.由于某些答案仍然存在filter于其中,因此,如果您在其中一些答案中看到此编辑部分,则应避免混淆filter.

python dictionary

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

如何在Python中多列表的词典列表?

列表有结构:

test = [{"title": title, "ratio": ratio, "delta": begin - now()}]
Run Code Online (Sandbox Code Playgroud)

需要按比例(max-> min)和按delta(min-> max)排序后排序?

python sorting list

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

根据键具有不同名称的值对字典列表进行排序

我有一个字典列表,如下所示:

my_list = [
          {'1200' : [10, 'A']},
          {'1000' : [24, 'C']},
          {'9564' : [6, 'D']},
          ]
Run Code Online (Sandbox Code Playgroud)

列表中的所有字典都有一个键值对。

我想根据作为列表的每个字典值的第一个元素对其进行排序,因此排序后的列表如下所示:

my_list_sorted = [
          {'9564' : [6, 'D']},
          {'1200' : [10, 'A']},
          {'1000' : [24, 'C']},
          ]
Run Code Online (Sandbox Code Playgroud)

如您所见,键具有不同的名称,这就是为什么我不能使用以下帖子中的答案:如何按字典的值对字典列表进行排序?

python sorting dictionary

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

如何在Python中对此数据结构进行排序?

我有一个数据结构(从YAML文档创建),如下所示:

{
    'SD_TX_EN_CFG[5]': {'Bits': {0: 'ENTX // 0 = Disabled, 1 = Enabled'}, 'Name': 'TX Enable Register (Link 5)', 'Offset': 43024},
    'SD_TX_EN_CFG[4]': {'Bits': {0: 'ENTX // 0 = Disabled, 1 = Enabled'}, 'Name': 'TX Enable Register (Link 4)', 'Offset': 40976},
    'SD_RX_EN_CFG[5]': {'Bits': {0: 'ENRX // 0 = Disabled, 1 = Enabled'}, 'Name': 'RX Enable Register (Link 5)', 'Offset': 43008},
    'SD_RX_EN_CFG[3]': {'Bits': {0: 'ENRX // 0 = Disabled, 1 = Enabled'}, 'Name': 'RX Enable Register (Link 3)', 'Offset': 38912},
    'SD_RX_EN_CFG[2]': {'Bits': …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary pyyaml

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

如何按键值对字典进行正确排序?

我想按特定键的值对字典进行排序(示例中的“foo”)

mydict = dict()
mydict["a"] = {"foo": 0.3, "boo": 0.1}
mydict["b"] = {"foo": 0.1, "boo": 0.2}
mydict["c"] = {"foo": 0.8, "boo": 0.3}
mydict["d"] = {"foo": 0.5, "boo": 0.4}
mydict["e"] = {"foo": 0.2, "boo": 0.5}

# sort by "foo" in descending order
# expected result: [{"foo": 0.8, "boo": 0.3}, {"foo": 0.5, "boo": 0.4}, {"foo": 0.3, "boo": 0.1}, {"foo": 0.2, "boo": 0.5}, {"foo": 0.1, "boo": 0.2}]
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到上面评论中显示的我想要的结果?

python dictionary

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

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

按另一个列表对字典列表进行排序。我有带有字典的列表(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
查看次数

使用自定义序列对值字典进行排序

所以基本上我有一个字典列表,其中包含以下值:

[
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':89},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':89,'Marks':68},
 {'First Name ':'Angelica', 'Last Name':'King','Age':39,'Marks':84},
 {'First Name ':'Stephen', 'Last Name':'King','Age':29,'Marks':78},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':84},
]
Run Code Online (Sandbox Code Playgroud)

所以我基本上想要在First Name上的'升序'中排序First,然后在Second Name上按'升序'排序,然后在Age上按'降序'排序,最后在标记上排序'降序'.因此,排序后应该如下所示:

[
 {'First Name ':'Angelica', 'Last Name':'King','Age':39,'Marks':84},
 {'First Name ':'Stephen', 'Last Name':'King','Age':29,'Marks':78},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':89,'Marks':68},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':98},
 {'First Name ':'Stephen', 'Last Name':'Queen','Age':61,'Marks':89}
]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是使用Pythonic方法有效地完成它.我试过这里提到的解决方案,但是想不到将它复制到我的情况,我希望同时在多个键上自定义顺序(即创建一种映射器以用户定义的方式对字典进行排序).

python sorting dictionary

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

排序长词典列表

我有一个Python中的两个词典列表

list = [{'id' : 'ewsfsdf', 
           '_source' : 
                      {'timestamp':'2018-08-08T20:56:01', 
                       'bytes':'43534534'}},
         {'id' : 'ewsfsdz', 
           '_source' : 
                      {'timestamp':'2018-08-08T20:57:01', 
                       'bytes':'4354343534'}}]
Run Code Online (Sandbox Code Playgroud)

我想按第二深度字典中的时间戳排序列表元素.我查找了许多其他python示例,但无法通过列表中字典元素的字典元素找到合适的解决方案来排序列表元素.

你能给我一个线索吗?

python sorting

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

python中根据值对Json数据进行排序

我有以下 Json 作为输出,还需要按 sal 值的降序组织 json

[
     {
        "sal": 12,
        "Stack ": "Java",
        "EmpID": "00030010-0010-0000-0000-000000000121"
    },
    {
        "sal": 24,
        "Stack ": ".net",
        "EmpID": "00030010-0010-0000-0000-000000000144"
    },
    {
        "sal": 14,
        "Stack ": "Ruby",
        "EmpID": "00030010-0010-0000-0000-000000000198"
    }
]
Run Code Online (Sandbox Code Playgroud)

请帮助我实现同样的目标

python

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

如何按可以包含重复值的列表对字典列表进行排序?

上下文:
在 Python 3.9 中,即使存在重复项,按第二个列表对大多数对象的列表进行排序也很容易:

>>> sorted(zip([5, 5, 3, 2, 1], ['z', 'y', 'x', 'w', 'x']))
[(1, 'x'), (2, 'w'), (3, 'x'), (5, 'y'), (5, 'z')]
Run Code Online (Sandbox Code Playgroud)

如果要排序的列表包含字典,则排序通常会顺利进行:

>>> sorted(zip([3, 2, 1], [{'z':1}, {'y':2}, {'x':3}])) 
[(1, {'x': 3}), (2, {'y': 2}), (3, {'z': 1})]
Run Code Online (Sandbox Code Playgroud)

问题:
但是,当要排序的列表包含重复项时,会出现以下错误:

>>>sorted(zip([5, 5, 3, 2, 1], [{'z':1}, {'y':2}, {'x':3}, {'w': 4}, {'u': 5}])) 
*** TypeError: '<' not supported between instances of 'dict' and 'dict'
Run Code Online (Sandbox Code Playgroud)

这个问题对我来说非常疯狂:要排序的列表的值如何影响要排序的列表?

替代解决方案:
一种不太优雅的解决方案是按索引从列表中获取字典对象:

>>> sort_list = [5, 5, 3, 2, 1]    
>>> …
Run Code Online (Sandbox Code Playgroud)

python sorting dictionary list

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

如何在Python中对字典列表(使用浮点值字段)进行排序?

我在 Python 的字典列表中有这组值。

[
{'dep_price': '42.350', 'dep_date': '8-Mar-2017', 'trip_type': 'dep'}, 
{'dep_price': '42.350', 'dep_date': '9-Mar-2017', 'trip_type': 'dep'}, 
{'dep_price': '36.350', 'dep_date': '10-Mar-2017', 'trip_type': 'dep'}
]
Run Code Online (Sandbox Code Playgroud)

如何根据字段“dep_price”作为浮点值对它们进行排序?

python sorting floating-point

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

标签 统计

python ×13

sorting ×9

dictionary ×7

list ×3

floating-point ×1

lambda ×1

pyyaml ×1