假设我有这个字典,我想要一个名字和id列表。
d = [{'name': 'testtt', id: 1, 'stuff': 123}, {'name': 'test', id: 2, 'stuff', 123
}]
我能做到:
items = []
for item in d:
items.append(d['name'])
items.append(d['id'])
可以在相同的列表理解中完成吗?
这样的事情:
items = [item['name'], item['id'] for item in d
]
答案 0 :(得分:1)
这是使用嵌套循环从每个dict字段添加项目的一种方法:
items = [x for dct in d for x in (dct['name'], dct['id'])]
答案 1 :(得分:1)
您可以使用itertools
:
d = [{'name': 'testtt', 'id': 1, 'stuff': 123}, {'name': 'test', 'id': 2, 'stuff':123}]
from itertools import chain
new_d = list(chain.from_iterable([(i["name"], i["id"]) for i in d]))
输出:
['testtt', 1, 'test', 2]
答案 2 :(得分:1)
注意必须将id 更改为字符串,否则它会引用内置id函数。你可以这样做
d = [{'name': 'testtt', 'id': 1, 'stuff': 123}, {'name': 'test', 'id': 2, 'stuff': 123}]
items = map(lambda x: (x['name'], x['id']), d)
>>> items
[('testtt', 1), ('test', 2)]