如何用"x"替换两个字符串之间的不常见字符?



我有一个字符串计数字典:{"abcd12efgh":1,"abcd23efgh":1,"abcd567efgh":1,"abcdkljefgh":1, "dog":1, "cat":1}

我需要将类似的字符串分组并聚合计数,以获得类似的内容:{"abcdxxxefgh":4,"dog":1,"cat":1}.

在Python中,哪种方法最优雅?

答案取决于您假设两个键如何匹配,但您可以由一个单独的函数来决定。我写了一个可能是你想要的:检查密钥是否有特定的前缀和后缀。您可以添加更多的约束,例如,中间的子字符串具有特定的长度或其他模式。

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}

最新更新