gpt4 book ai didi

python - 在 python 3 中查找字符串中的重复项

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:02 24 4
gpt4 key购买 nike

def find_duplicate():
x =input("Enter a word = ")
for char in x :
counts=x.count(char)
while counts > 1:
return print(char,counts)

我在那里遇到了一个小问题,我想在字符串中找到所有重复项,但是这个程序只给我一个重复项,例如:aassdd 是我的输入函数只给了我一个 : 2 但它必须是那种形式的 a : 2 s : 2 d : 2 感谢您的回答。

最佳答案

return 是一个或多或少用作立即退出此函数(并可选择随身携带一些输出) 的关键字。因此,您需要删除 return 语句:

def find_duplicate():
x =input("Enter a word = ")
for char in x :
counts=x.count(char)
print(char,counts)

此外,你还必须删除 while 循环(或者如果你想多次打印 print 则更新计数器),否则你将陷入无限循环,因为count 不会更新,因此测试总是会成功。

但是请注意,在这种情况下,如果在字符串中多次找到 a ,它将被打印多次(在这种情况下是两次)。您可以通过首先构建字符串中字符的并遍历该集来解决此问题:

def find_duplicate():
x =input("Enter a word = ")
for char in set(x):
counts=x.count(char)
print(char,counts)

最后,最好将计算函数I/O 函数 分开(例如print)。所以你最好做一个函数来返回一个带有计数的字典,然后打印那个字典。您可以像这样生成一个字典:

def find_duplicate(x):
result = {}
for char in set(x):
result[char]=x.count(char)
return result

还有一个调用函数:

def do_find_duplicates(x):
x =input("Enter a word = ")
for key,val in find_duplicate(x).items():
print(key,val)

现在最好的部分是:您实际上不需要编写 find_duplicate 函数:有一个实用程序类:Counter :

from collections import Counter

def do_find_duplicates(x):
x =input("Enter a word = ")
for key,val in Counter(x).items():
print(key,val)

关于python - 在 python 3 中查找字符串中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41682532/

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