【发布时间】:2016-08-03 14:39:48
【问题描述】:
我需要将字符串转换为新字符串:如果该字符在原始字符串中仅出现一次,则新字符串中的每个字符必须为 '(',如果该字符在原始字符串中多次出现,则必须为 ')'细绳。 请你帮助我好吗?
myword = "attachment"
def duplicate_encode(word):
from collections import Counter
lst = list(word)
counts = Counter(lst)
newwrd = ""
for key, value in counts.iteritems():
if value > 1:
newwrd += key.replace(key, ")")
else:
newwrd += key.replace(key, "(")
return newwrd
print duplicate_encode(myword)
我的输出:)((((())
预期输出))))((((())
编辑:如果是大写,我不想考虑它们(即“Fanfare”=>“))())((”)
【问题讨论】:
-
您没有替换原始字符串中的字符;您正在替换
Counter的键。它们不会以相同的顺序结束。 -
完全删除
newwrd,每次都在word上调用replace。也不需要将其转换为列表。
标签: python arrays string python-2.7 loops