所以我有这样的小数据:
data = [
{"Name":"Arab","Code":"Zl"},
{"Name":"Korea","Code":"Bl"},
{"Name":"China","Code":"Bz"}
]
我想找一个图,使得x轴为:"Bl", "Bz", "Zl"(字母顺序)
y轴为:“韩国”、“中国”、“阿拉伯”(对应代号)。
我想到了:
new_data = {}
for dic in data:
country_data = dic["Name"]
code_data = dic["Code"]
new_data[code_data] = country_data
code_data = []
for codes in new_data.keys():
code_data.append(codes)
code_data.sort()
name_data = []
for code in code_data:
name_data.append(new_data[code])
有更好的方法吗? 也许不创建新词典?
最佳答案
数据如下:
data = [
{"Name":"Arab","Code":"Zl"},
{"Name":"Korea","Code":"Bl"},
{"Name":"China","Code":"Bz"}
]
创建一个新的排序列表:
new_list = sorted(data, key=lambda k: k['Code'])
如果您不想获取新列表:
data[:] = sorted(data, key=lambda k: k['Code'])
结果是:
[{'Code': 'Bl', 'Name': 'Korea'}, {'Code': 'Bz', 'Name': 'China'}, {'Code': 'Zl', 'Name': 'Arab'}]
希望能帮到你!
关于python - 重新排序字典列表的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53236853/