-2
我有串計數的詞典:{"abcd12efgh":1,"abcd23efgh":1,"abcd567efgh":1,"abcdkljefgh":1, "dog":1, "cat":1}
如何用'x'替換兩個字符串之間的不常見字符?
我需要組合到一起類似的字符串和聚集數要達到這樣的:{"abcdxxxefgh":4,"dog":1,"cat":1}.
在Python裏是完成這一任務的最優雅的方式?
我有串計數的詞典:{"abcd12efgh":1,"abcd23efgh":1,"abcd567efgh":1,"abcdkljefgh":1, "dog":1, "cat":1}
如何用'x'替換兩個字符串之間的不常見字符?
我需要組合到一起類似的字符串和聚集數要達到這樣的:{"abcdxxxefgh":4,"dog":1,"cat":1}.
在Python裏是完成這一任務的最優雅的方式?
答案取決於你如何假設兩個鍵匹配,但是你可以有一個單獨的函數來決定。我寫了一個可能是你正在尋找的東西:檢查密鑰是否有特定的前綴和後綴。您可以添加更多的約束條件,如中間的子字符串具有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}
這真的取決於你如何決定將詞語分類到足夠類似於組。你現在怎麼做對我來說沒有意義。在這種分組方法中,'dog'=='挖掘'=='挖'? – Kosch
我認爲你應該擔心這樣做的方式,然後再擔心這樣做的優雅方式。 – csmckelvey
@Vikas,我想人們會投票回答這個問題,因爲堆棧溢出是關於提出更具體的問題。這似乎是一種讓自己編碼的方式。 –