如何重新排列字典中的关键字



我有一个字典列表,格式为:

my_list = [{'a': 'Jane', 'b': 32}, {'a': 'Jack', 'b': 54}]

我想把这个重新订到表格上:

new_dt = [{'b': 32, 'a': 'Jane'}, {'b': 54, 'a': 'Jack'}]

我使用了以下代码:

order_dict = ['b', 'a']
for dt in my_list:
for k in order_dict:
new_dt = my_list[k]

追溯

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-87-0d451ee34800> in <module>
3 for dt in my_list:
4     for k in order_dict:
----> 5         new_dt = my_list[k]
TypeError: list indices must be integers or slices, not str

您可以简单地执行:

my_list = [{'a': 'Jane', 'b': 32}, {'a': 'Jack', 'b': 54}]
print([dict(sorted(x.items(),key = lambda x:x[0],reverse=True)) for x in my_list])

输出:

[{'b': 32, 'a': 'Jane'}, {'b': 54, 'a': 'Jack'}]

解释

sorted(x.items(),key = lambda x:x[0],reverse=True)

在这里,我们只是对字典中的项(键和值(进行排序,以获得所需的顺序。

key = lambda x:x[0]

这个组件确保我们根据条目中的第一个元素(本质上是字典的关键字(进行排序

我们将Set反置为true以获得所需的序列。

最新更新