我写了一个简单的脚本来打印出给定字符串中的唯一字符。
每个唯一字符都附加到输出中,但最后,只打印附加的最后一个字符。
input = "1234a4321b1234c4321d"
output= ""
for x in input:
if x not in output:
output += x
print x
我希望打印出来:1234abcd
但它只打印是:d
我做错了什么?
答案 0 :(得分:4)
您应该打印output
,而不是x
。
另请注意,您的方法不会仅打印唯一字符,因为每次出现时都会添加每个字母。 (首次选中1
时,它不在output
中......)
答案 1 :(得分:0)
您确实要打印output
而不是x
>>> input = "1234a4321b1234c4321d"
>>> output = ""
>>> for x in input:
... if x not in output:
... output += x
...
>>> print output
1234abcd
>>>
但这不是你所追求的。至少如果您希望您的输出在原始问题中提到的那样是非常的。
所以,也许你想要检查数字
>>> 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))