我想遍历该字典并进行列表理解,其中每个元素都是一个字典,但是我无法获取该键的值。
cars = {
'cars' : ['audi', 'bmw', 'xyz'],
'model' : ['abc', 'qwer', 'rty']
}
car_list = [{'car': value_audi, 'car-model': value_abc} for car in cars]
how can I get this value_audi and value_abc for each list item?
结果应该是这样
car_list = [{'cars': audi, 'car_model': abc}, {'cars': bmw, 'car_model': qwer}, {'cars': xyz, 'car_model': rty}]
答案 0 :(得分:3)
使用zip()
例如。
cars = {
'cars' : ['audi', 'bmw', 'xyz'],
'model' : ['abc', 'qwer', 'rty']
}
result = [{'cars':c,'car_model':m} for c,m in zip(cars['cars'],cars['model']) ]
print(result)
O / P:
[{'cars': 'audi', 'car_model': 'abc'}, {'cars': 'bmw', 'car_model': 'qwer'}, {'cars': 'xyz', 'car_model': 'rty'}]
答案 1 :(得分:1)
使用<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#72CA5C54"
android:centerColor="#43F71803"
android:endColor="#272525"
android:angle="45"/>
</shape>
:
zip(*)
示例:
car_list = [{'car': x, 'car_model': y} for x, y in zip(*cars.values())]
答案 2 :(得分:0)
如果您不想“硬编码”新字典的键,则可以使用:
from itertools import cycle
cars = {
'cars' : ['audi', 'bmw', 'xyz'],
'model' : ['abc', 'qwer', 'rty']
}
[dict(e) for e in zip(*[zip(cycle([k]), v) for k, v in cars.items()])]
输出:
[{'cars': 'audi', 'model': 'abc'},
{'cars': 'bmw', 'model': 'qwer'},
{'cars': 'xyz', 'model': 'rty'}]
答案 3 :(得分:0)
Zip()可以在这里为您提供帮助。
zip()的目的是映射多个容器的相似索引,以便可以将它们用作单个实体使用。
cars = {
'cars' : ['audi', 'bmw', 'xyz'],
'model' : ['abc', 'qwer', 'rty']
}
result = [{'cars':x,'car_model':y} for x,y in zip(cars['cars'],cars['model']) ]
print(result)
预期输出为:
[{'cars': 'audi', 'car_model': 'abc'}, {'cars': 'bmw', 'car_model': 'qwer'}, {'cars': 'xyz', 'car_model': 'rty'}]
点击此链接以进一步阐明zip()