python flatten/unwrap 列表中的词典列表
python flatten/unwrap list of dictionaries in list
我有如下列表中的词典列表
A = [[{'a': '1', 'b': '2'}],[{...}],[{...}],[],[],[{'x': '25', 'z':'26'}]]
列表“A”中的 7 个词典列表(7 天的数据)
A 中的一些字典列表有数据,有些没有
我想flatten/unwrap把这个放到不同的列表B
B = [{'a': '1', 'b': '2', ..., 'x': '25', 'z':'26'}]
作为词典列表。
我试过(有相应的导入):
B = (list(itertools.chain(*A)))
B = [item for sublist in A for item in sublist]
B = [dict(chain(*map(dict.items, d.values()))) for d in A]
以上 3 个 flattening/unwrapping 方法结果给我一个空列表 []。
我想这样做是因为只有一个列表适合我在 html 中的 ajax 附加格式
这也将应用于月、季度、半年和年的数据集。(我还需要将 365 个字典列表展平到一个列表中,并使用 for 循环来创建此列表)
我是不是用错了上面的方法?
flattening/unwrapping 是否必须遵循每个未组织列表的结构?
是否最好不要通过从 更改 for 循环来创建像列表 A 这样的无组织列表?
编辑:我在问题中将展开列表(A) 和展开列表(B) 分开了。
您可以使用 itertools.chain()
和听写理解:
A = [[{1:1, 2:2}], [], [{3:3}], [{8:8}], [], [], [{9:9}]]
b = itertools.chain(*A)
{k:v for x in b for k,v in x.items()}
预期结果:
{1: 1, 2: 2, 3: 3, 8: 8, 9: 9}
关于 itertools 的更多信息:https://www.geeksforgeeks.org/python-itertools/
更多关于听写理解:https://www.programiz.com/python-programming/dictionary-comprehension
我有如下列表中的词典列表
A = [[{'a': '1', 'b': '2'}],[{...}],[{...}],[],[],[{'x': '25', 'z':'26'}]]
列表“A”中的 7 个词典列表(7 天的数据)
A 中的一些字典列表有数据,有些没有
我想flatten/unwrap把这个放到不同的列表B
B = [{'a': '1', 'b': '2', ..., 'x': '25', 'z':'26'}]
作为词典列表。
我试过(有相应的导入):
B = (list(itertools.chain(*A)))
B = [item for sublist in A for item in sublist]
B = [dict(chain(*map(dict.items, d.values()))) for d in A]
以上 3 个 flattening/unwrapping 方法结果给我一个空列表 []。 我想这样做是因为只有一个列表适合我在 html 中的 ajax 附加格式 这也将应用于月、季度、半年和年的数据集。(我还需要将 365 个字典列表展平到一个列表中,并使用 for 循环来创建此列表)
我是不是用错了上面的方法?
flattening/unwrapping 是否必须遵循每个未组织列表的结构?
是否最好不要通过从
编辑:我在问题中将展开列表(A) 和展开列表(B) 分开了。
您可以使用 itertools.chain()
和听写理解:
A = [[{1:1, 2:2}], [], [{3:3}], [{8:8}], [], [], [{9:9}]]
b = itertools.chain(*A)
{k:v for x in b for k,v in x.items()}
预期结果:
{1: 1, 2: 2, 3: 3, 8: 8, 9: 9}
关于 itertools 的更多信息:https://www.geeksforgeeks.org/python-itertools/
更多关于听写理解:https://www.programiz.com/python-programming/dictionary-comprehension