猿问

python append(+ =)用最后一个字符替换整个字符串

我编写了一个简单的脚本,以打印出给定字符串中的唯一字符。


每个唯一字符都附加到输出中,但是最后,仅打印最后附加的字符。


input = "1234a4321b1234c4321d" 


output= ""


for x in input:

    if x not in output:

        output += x


print x

我希望它能打印:1234abcd


但它只能打印的是:d


我究竟做错了什么?


MMMHUHU
浏览 315回答 2
2回答

慕哥6287543

您应该打印output,不x。另外,请注意,您的方法将不会仅打印唯一字符,因为每个字母将在首次出现时添加。(在1第一次检查时,它还没有放入output...)

鸿蒙传说

您确实要打印output而不是x>>> input = "1234a4321b1234c4321d" >>> output = "">>> for x in input:...     if x not in output:...             output += x... >>> print output1234abcd>>> 但是那也不是你追求的。如果您希望您的输出在您最初的问题中提到过,那么请与您联系。因此,也许您想检查数字>>> output = "">>> for x in input:...     if x.isdigit() == False:...             output += x... >>> output'abcd'或者,如果您只想要独特的商品,则可能需要 set()>>> output = ''.join(set((i for i in input)))>>> output'acbd1324'最后,一种更简洁的方式来做您原来想做的事>>> output = ''.join(set((i for i in input if i.isdigit() == False)))>>> output'acbd'最后,@ RedBaron在对原始问题的评论中提供了一种甚至更简单的方法output = ''.join(set(input))
随时随地看视频慕课网APP

相关分类

Python
我要回答