我有一个字典列表,格式为:
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以获得所需的序列。