gpt4 book ai didi

python - 计算python字典中值的重复

转载 作者:行者123 更新时间:2023-11-28 22:00:08 25 4
gpt4 key购买 nike

我有一本以下格式的字典。在这本词典中,存在不同类型的区域,但出现了多次。我想从中生成另一个字典,它将包含一个附加键“Count”,并且该键将包含一个区域(即“Full Run or Half Run or Semi Run”)被重复的次数。

[
{'zip_zone': u'Full Run', 'zipcode': u'14042', 'longitude': -78.516154},
{'zip_zone': u'Full Run', 'zipcode': u'14101', 'longitude': -78.51734},
{'zip_zone': u'Full Run', 'zipcode': u'14706', 'longitude': -78.493761},
{'zip_zone': u'Half Run', 'zipcode': u'14709', 'longitude': -78.024817},
{'zip_zone': u'Semi Run', 'zipcode': u'14711', 'longitude': -78.119974},
{'zip_zone': u'Full Run', 'zipcode': u'14714', 'longitude': -78.256921},
{'zip_zone': u'Half Run', 'zipcode': u'14715', 'longitude': -78.157392},
{'zip_zone': u'Semi Run', 'zipcode': u'14717', 'longitude': -78.210567},
{'zip_zone': u'Semi Run', 'zipcode': u'14719', 'longitude': -78.86951},
{'zip_zone': u'Half Run', 'zipcode': u'14727', 'longitude': -78.268103},
{'zip_zone': u'Semi Run', 'zipcode': u'14731', 'longitude': -78.658909},
{'zip_zone': u'Half Run', 'zipcode': u'14735', 'longitude': -78.087607},
{'zip_zone': None, 'zipcode': u'14737', 'longitude': -78.431625},
{'zip_zone': u'Semi Run', 'zipcode': u'14739', 'longitude': -78.139046},
{'zip_zone': u'Semi Run', 'zipcode': u'14741', 'longitude': -78.5907},
{'zip_zone': u'Special Run', 'zipcode': u'14743', 'longitude': -78.4098},
{'zip_zone': u'Special Run', 'zipcode': u'14744', 'longitude': -78.167853},
{'zip_zone': u'Half Run', 'zipcode': u'14748', 'longitude': -78.639987},
{'zip_zone': u'Semi Run', 'zipcode': u'14753', 'longitude': -78.640416},
{'zip_zone': u'Special Run', 'zipcode': u'14754', 'longitude': -78.18395},
{'zip_zone': u'Special Run', 'zipcode': u'14755', 'longitude': -78.800866},
{'zip_zone': u'Half Run', 'zipcode': u'14760', 'longitude': -78.426015},
]

输出字典应该是这样的

[
{'zip_zone': u'Full Run', 'zipcode': u'14042', 'longitude': -78.516154, 'count': 4},
{'zip_zone': u'Full Run', 'zipcode': u'14101', 'longitude': -78.51734, 'count': 4},
{'zip_zone': u'Full Run', 'zipcode': u'14706', 'longitude': -78.493761, 'count': 4},
{'zip_zone': u'Half Run', 'zipcode': u'14709', 'longitude': -78.024817, 'count': 6},
{'zip_zone': u'Semi Run', 'zipcode': u'14711', 'longitude': -78.119974, 'count': 7},
{'zip_zone': u'Full Run', 'zipcode': u'14714', 'longitude': -78.256921, 'count': 4},
{'zip_zone': u'Half Run', 'zipcode': u'14715', 'longitude': -78.157392, 'count': 6},
{'zip_zone': u'Semi Run', 'zipcode': u'14717', 'longitude': -78.210567, 'count': 7},
{'zip_zone': u'Semi Run', 'zipcode': u'14719', 'longitude': -78.86951, 'count': 7},
{'zip_zone': u'Half Run', 'zipcode': u'14727', 'longitude': -78.268103, 'count': 6},
{'zip_zone': u'Semi Run', 'zipcode': u'14731', 'longitude': -78.658909, 'count': 7},
{'zip_zone': u'Half Run', 'zipcode': u'14735', 'longitude': -78.087607, 'count': 6},
{'zip_zone': None, 'zipcode': u'14737', 'longitude': -78.431625, 'count': 0},
{'zip_zone': u'Semi Run', 'zipcode': u'14739', 'longitude': -78.139046, 'count': 7},
{'zip_zone': u'Semi Run', 'zipcode': u'14741', 'longitude': -78.5907, 'count': 7},
{'zip_zone': u'Special Run', 'zipcode': u'14743', 'longitude': -78.4098, 'count': 4},
{'zip_zone': u'Special Run', 'zipcode': u'14744', 'longitude': -78.167853, 'count': 4},
{'zip_zone': u'Half Run', 'zipcode': u'14748', 'longitude': -78.639987, 'count': 6},
{'zip_zone': u'Semi Run', 'zipcode': u'14753', 'longitude': -78.640416, 'count': 7},
{'zip_zone': u'Special Run', 'zipcode': u'14754', 'longitude': -78.18395, 'count': 4},
{'zip_zone': u'Special Run', 'zipcode': u'14755', 'longitude': -78.800866, 'count': 4},
{'zip_zone': u'Half Run', 'zipcode': u'14760', 'longitude': -78.426015, 'count': 6},
]

最佳答案

这是 Python 集合模块中 Counter 类的一个很好的用例。

import collections

# u is your input list of dictionaries, entries in u will be modified in place

c = collections.Counter(e["zip_zone"] for e in u)
for e in u:
e["count"] = c[e["zip_zone"]]

关于python - 计算python字典中值的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15402446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com