python - 重新排序字典列表的更好方法?

标签 python python-3.x list sorting dictionary

所以我有这样的小数据:

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/

相关文章:

python - 无法在 python 中完全下载 nltk 包。停在 omw

c# - ASP.Net MVC 多个列表从 Controller 返回

python - 如何在多个实例中使用prometheus?

python - 在 os x 上的 matlab mex 文件中嵌入 python

python-3.x - 使用 python 脚本启动 vpn

c++ - 如何将我的程序指向我输入到列表中的值? C++

mysql - 在 MySQL 中使用另一个列表选择一个列表的子集

python - 如何在 Windows 上的 python 中安装 METIS 包?

python - 如何使用不同的数据多次执行相同的查询?

python - 机器人框架中的关键字是什么?