为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMMHUHU 2021-03-18 14:14:25
我编写了一个简单的脚本,以打印出给定字符串中的唯一字符。每个唯一字符都附加到输出中,但是最后,仅打印最后附加的字符。input = "1234a4321b1234c4321d" output= ""for x in input:    if x not in output:        output += xprint x我希望它能打印:1234abcd但它只能打印的是:d我究竟做错了什么?
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您应该打印output,不x

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


查看完整回答
反对 回复 2021-03-24
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您确实要打印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))


查看完整回答
反对 回复 2021-03-24
  • 2 回答
  • 0 关注
  • 314 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号