我有一个字符串计数字典:{"abcd12efgh":1,"abcd23efgh":1,"abcd567efgh":1,"abcdkljefgh":1, "dog":1, "cat":1}
我需要将类似字符串组合在一起并聚合计数,以获得类似:{"abcdxxxefgh":4,"dog":1,"cat":1}.
在Python中实现此目的的最优雅方法是什么?
答案 0 :(得分:0)
答案取决于你如何假设两个键匹配,但是你可以有一个单独的函数来决定。我写了一篇可能正在寻找的内容:检查密钥是否有特定的前缀和后缀。您可以添加更多约束,例如,其间的子字符串具有certian长度或其他模式。
def transform(key):
prefix, suffix = 'abcd', 'efgh'
transformed = key
if key.startswith(prefix) and key.endswith(suffix):
transformed = prefix + 'X' + suffix
return transformed
new_d = {}
for k in d:
new_d[transform(k)] = new_d.get(transform(k), 0) + d[k]
#{'abcdXefgh': 4, 'cat': 1, 'dog': 1}