python - 拆分对象数组

时间:2016-05-29 01:55:13

标签: python

我有一个看起来像这样的数据结构

arrayObjects = [{id: 1, array1: [a,b,c]}, {id: 2, array1: [d,e,f]}]

并希望将其转化为:

newArrayObjects = [{id: 1, term: a}, {id:1, term: b}, ... {id:2, term: f} ]

关于如何做到这一点的任何想法?

这是我现在的最低版本:

for item in arrayObjects:
        for term in item['array1']:
            print(term, item['id'])

澄清:我知道如何使用嵌套循环执行此操作,我只是为了获得最可能的pythonic版本哈哈

1 个答案:

答案 0 :(得分:4)

您可以使用列表理解:

>>> a = [{'id': 1, 'array': ['a','b','c']}, {'id': 2, 'array': ['d','e','f']}]
>>> [{'id': d['id'], 'term': v } for d in a for v in d['array']]
[{'term': 'a', 'id': 1}, {'term': 'b', 'id': 1}, {'term': 'c', 'id': 1}, {'term': 'd', 'id': 2}, {'term': 'e', 'id': 2}, {'term': 'f', 'id': 2}]