字典理解的唯一值,return 字典而不是字符串
Unique values of Dictionary comprehension, return dictionary instread of string
这是我的数据:
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'}]
我想找出 "city" 和 return 的唯一值(这就是我使用集合的原因),如下所示:
cities = set([x.get("city") for x in data])
cities ´
{'New York', 'San Francisco'}
不过,我也想return对应的状态,像这样:
[{"city": "New York", "state": "NY"}, {"city": "San Francisco", "state": "CA"}]
有办法吗?
您可以使用 dict-comprehension 完成任务:
out = list({x['city']:{'city':x['city'], 'state':x['state']} for x in data}.values())
print(out)
打印:
[{'city': 'San Francisco', 'state': 'CA'}, {'city': 'New York', 'state': 'NY'}]
您可以使用 dict-comprehension 创建 city->state 映射,然后迭代它以创建您想要的列表:
city_to_state = {x["city"]: x["state"] for x in data}
result = [{"city":k, "state":v} for k,v in city_to_state.items()]
这是我的数据:
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'}]
我想找出 "city" 和 return 的唯一值(这就是我使用集合的原因),如下所示:
cities = set([x.get("city") for x in data])
cities ´
{'New York', 'San Francisco'}
不过,我也想return对应的状态,像这样:
[{"city": "New York", "state": "NY"}, {"city": "San Francisco", "state": "CA"}]
有办法吗?
您可以使用 dict-comprehension 完成任务:
out = list({x['city']:{'city':x['city'], 'state':x['state']} for x in data}.values())
print(out)
打印:
[{'city': 'San Francisco', 'state': 'CA'}, {'city': 'New York', 'state': 'NY'}]
您可以使用 dict-comprehension 创建 city->state 映射,然后迭代它以创建您想要的列表:
city_to_state = {x["city"]: x["state"] for x in data}
result = [{"city":k, "state":v} for k,v in city_to_state.items()]