{
"key1": {
"element1": [1, 10, 5, 13, 4, 7]
},
"key2": {
"element2": [3, 5, 2, 9, 12, 1]
}
}
我想在for循环中对列表element1
和element2
进行排序(我拥有的真实字典更大),我如何做到这一点?
设上面的字典等于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]
}
}