字典理解的唯一值,返回字符串的字典实例。

问题描述 投票:0回答:1

这是我的数据。

data = [{'id': 1, 'name': 'The Musical Hop', 'city': 'San Francisco', 'state': 'CA'},
{'id': 2, 'name': 'The Dueling Pianos Bar', 'city': 'New York', 'state': 'NY'},
{'id': 3, 'name': 'Park Square Live Music & Coffee', 'city': 'San Francisco', 'state': 'CA'}]

我想找出 "城市 "的唯一值(这就是为什么我用了一个集合) 然后像这样返回。

cities = set([x.get("city") for x in data])
cities ´

{'New York', 'San Francisco'}

但是,我还想返回相应的状态,像这样。

[{"city": "New York", "state": "NY"}, {"city":  "San Francisco", "state": "CA"}]

有什么方法可以做到这一点吗?

python dictionary set dictionary-comprehension
1个回答
3
投票

你可以使用dict-comprehension来完成任务。

out = list({x['city']:{'city':x['city'], 'state':x['state']} for x in data}.values())

print(out)

Prints:

[{'city': 'San Francisco', 'state': 'CA'}, {'city': 'New York', 'state': 'NY'}]

1
投票

你可以使用dict -comprehension来创建一个城市>州的映射,然后迭代它来创建你想要的列表。

city_to_state = {x["city"]: x["state"] for x in data}
result = [{"city":k, "state":v} for k,v in city_to_state.items()]
© www.soinside.com 2019 - 2024. All rights reserved.