排列嵌套在字典列表中的元组

2024-06-06 09:05:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个嵌套元组的字典列表,如下面的一个。你知道吗

d = [ 
('sprayed', {'paint': (4.0, None), 'car': (5.0, None), 'water': (None, 9.0), 'hose': (7.0, 6.0)}), 
('cherished', {'time': (None, 5.0), 'family': (4.0, None), 'gift': (None, 9.0)})
]

我想使用每个元组中的第一个项按降序排序。结果应该是这样的:

d2 = [ 
('sprayed', {'hose': (7.0, 6.0), 'car': (5.0, None), 'paint': (4.0, 9.0), 'water': (None, 9.0)}), 
('cherished', {'family': (4.0, None), 'time': (None, 5.0), 'gift': (None, 9.0)})
]

我试过使用:

s2 = []
for k, v in s:
    new_list = sorted(zip(v[::2], v[1::2]), key=lambda x: float(x[1]), reverse=True)

但它不能通过。我当然错过了一些明显的东西,我提前道歉,但如果有人能指出一个解决办法,我会非常感激。你知道吗


Tags: none列表字典time排序carfamily元组
1条回答
网友
1楼 · 发布于 2024-06-06 09:05:50

假设sdv将是一个字典,因此表达式zip(v[::2], v[1::2])将不起作用。字典不是序列,你不能像列表那样分割它们。要为dict获得一个(key, value)对序列,只需执行v.items()而不是zip操作。你知道吗

相关问题 更多 >