python 字典列表的转换

133 阅读2分钟

[{a:1},{b:2}] 如何使用python转换成 [{b:2},{a:1}]

你可以使用Python中的列表解析来实现这个目标。以下是一个示例代码:

pythonCopy code
original_list = [{'a': 1}, {'b': 2}]
new_list = [{k: v} for d in original_list for k, v in d.items()]

解释一下上面的代码:

  1. 首先,我们定义了一个原始列表 original_list,其中包含两个字典元素 {'a': 1}{'b': 2}
  2. 接下来,我们使用列表解析来创建一个新列表 new_list。列表解析中的 for 循环首先迭代 original_list 中的每个元素,然后再迭代每个元素的 items(),这将返回一个键值对元组列表,其中键是字典中的键,值是字典中的值。
  3. 最后,我们使用字典解析来创建一个新字典,其中键是 k,值是 v,然后将它们包装在一个大括号 {} 中,并将每个新字典添加到 new_list 中。

运行上面的代码后,new_list 的值将为 [{b: 2}, {a: 1}]

安泽

[{a:1,c:3},{b:2,d:4}] 使用python转换成[{b:2,d:4},{a:1,c:3}]

同样地,你可以使用列表解析来实现这个目标。以下是一个示例代码:

pythonCopy code
original_list = [{'a': 1, 'c': 3}, {'b': 2, 'd': 4}]
new_list = [dict(reversed(list(d.items()))) for d in original_list]

解释一下上面的代码:

  1. 首先,我们定义了一个原始列表 original_list,其中包含两个字典元素 {'a': 1, 'c': 3}{'b': 2, 'd': 4}
  2. 接下来,我们使用列表解析来创建一个新列表 new_list。列表解析中的 for 循环首先迭代 original_list 中的每个元素,然后将每个元素的 items() 转换成一个列表,并将其反转。
  3. 最后,我们使用字典解析来创建一个新字典,其中键值对的顺序已被反转,然后将新字典添加到 new_list 中。

运行上面的代码后,new_list 的值将为 [{b:2,d:4},{a:1,c:3}]。注意,由于字典是无序的,因此新列表中每个字典中的键值对顺序可能与原始列表中的顺序不同。