将项目列表转换为多个字典,其中每个键只有列表中的一个值
我有一个看起来像这样的结果列表:[球员,俱乐部,国籍,国家,纬度,经度]
results = [('Edouard Mendy', 'Chelsea FC', 'Senegal', 'Senegal', 14.0, -14.0),
('Kepa', 'Chelsea FC', 'Spain', 'Spain', 40.0, -4.0),
('Kurt Zouma', 'Chelsea FC', 'France', 'France', 46.0, 2.0),
('Andreas Christensen', 'Chelsea FC', 'Denmark', 'Denmark', 56.0, 10.0),
('Antonio Rüdiger', 'Chelsea FC', 'Germany', 'Germany', 51.0, 9.0),
('Thiago Silva', 'Chelsea FC', 'Brazil', 'Brazil', -10.0, -55.0)]
我想把它改成一个字典格式:
players = [{
{"player": Edouard Mendy,
"club:": Chelsea FC,
"nationality": Senegal,
"country:" Senegal,
"latitude": 14.0,
"longitude": -14.0
}
{"player": Kepa,
"club:": Chelsea FC,
"nationality": Spain,
"country:" Spain,
"latitude": 40.0,
"longitude": -4.0
}
etc... for each player
}]
我试过了
player = [result[0] for result in results]
club = [result[1] for result in results]
nationality = [result[2] for result in results]
country = [result[3] for result in results]
latitude = [result[4] for result in results]
longitude = [result[5] for result in results]
并像这样把它放进字典里
players = {
"player": player,
"club": club,
"nationality": nationality,
"country": country,
"latitude": latitude,
"longitude": longitude
}
此结果将所有结果放入一个字典中。我怎样才能把它们分开?
回答
zip每个单独结果的字典键以创建一个(key, value)对列表,然后您可以将其转换为字典:
keys = ["player", "club", "nationality", "country", "latitude", "longitude"]
players = [dict(zip(keys, result)) for result in results]
print(players)
如果您有更多密钥,则此解决方案很容易扩展 - 只需将它们添加到keys列表中即可。