gpt4 book ai didi

python - 尝试使用 Python 3.6 打印字符串中第一次出现的重复字符时出错

转载 作者:太空狗 更新时间:2023-10-30 02:25:59 25 4
gpt4 key购买 nike

我正在编写一个简单的程序,用 *(星号) 替换字符串中的重复字符。但这里的问题是我可以打印字符串中第一次出现的重复字符,但不能打印其他出现的字符。

例如,如果我的输入Google,我的输出应该是Go**le

我可以用星号替换重复的字符,但就是找不到打印字符第一次出现的方法。换句话说,我现在的输出是 ****le

看看我的 Python3 代码:

s = 'Google'
s = s.lower()
for i in s:
if s.count(i)>1:
s = s.replace(i,'*')
print(s)

有人可以建议我应该怎么做才能获得所需的输出吗?

最佳答案

replace 将替换所有出现的字符。您需要关注您已经看到的字符,如果它们被重复替换只是这个字符(在特定索引处)。

字符串不支持索引赋值,因此我们可以构建一个新列表来表示新字符串,然后''.join() 它。

使用 Set 您可以关注您已经看过的项目。

看起来像这样:

s = 'Google'
seen = set()
new_string = []

for c in s:
if c.lower() in seen:
new_string.append('*')
else:
new_string.append(c)
seen.add(c.lower())

new_string = ''.join(new_string)
print(new_string)
Go**le

关于python - 尝试使用 Python 3.6 打印字符串中第一次出现的重复字符时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46742656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com