在字典中对列表排序


{
"key1": {
"element1": [1, 10, 5, 13, 4, 7]
},
"key2": {
"element2": [3, 5, 2, 9, 12, 1]
}
}

我想在for循环中对列表element1element2进行排序(我拥有的真实字典更大),我如何做到这一点?

设上面的字典等于x

for value in x.values():
for elem_value in value.values():
elem_value.sort()

列表是可变的,因此通过更改列表目录,您将更改整个字典,

需要一个双循环,因为每个元素都是字典的一个项,而每个元素又是字典的一个项。这是一种方法。

x = {
"key1": {
"element1": [1, 10, 5, 13, 4, 7]
},
"key2": {
"element2": [3, 5, 2, 9, 12, 1]
}
}
for _, elem in x.items():
for _, lst in elem.items():
lst.sort()

x
{'key1': {'element1': [1, 4, 5, 7, 10, 13]},
'key2': {'element2': [1, 2, 3, 5, 9, 12]}}

解决方案:

data = {
"key1": {
"element1": [1, 10, 5, 13, 4, 7]
},
"key2": {
"element2": [3, 5, 2, 9, 12, 1]
}
}
for key,values in data.items():
for k,v in values.items():
data[key][k] = sorted(v)

print(data)

结果:

{
'key1': 
{
'element1': [1, 4, 5, 7, 10, 13]
}, 
'key2': 
{
'element2': [1, 2, 3, 5, 9, 12]
}
}

相关内容

  • 没有找到相关文章

最新更新