Python 如何计算字符串中项目的重复数?

Python 如何计算字符串中项目的重复数?,python,list,Python,List,假设我有一个字符串:s=“hello2020” 如何创建一个返回字符串中重复数的程序?在本例中,当字母“l”出现多次时,程序将返回3,数字“2”和“0”也出现多次 提前谢谢 编辑:到目前为止,我已经尝试了:返回len([x表示集合中的x,如果s.count(x)>1]),但是它失败了两个测试用例。所以,我正在寻找另一种解决方案。一行解决方案,将字符串转换为集合,然后用转换后的集合字符串减去字符串的长度 from collections import Counter def do_find_du

假设我有一个字符串:
s=“hello2020”

如何创建一个返回字符串中重复数的程序?在本例中,当字母“l”出现多次时,程序将返回
3
,数字“2”和“0”也出现多次

提前谢谢


编辑:到目前为止,我已经尝试了:
返回len([x表示集合中的x,如果s.count(x)>1])
,但是它失败了两个测试用例。所以,我正在寻找另一种解决方案。

一行解决方案,将字符串转换为集合,然后用转换后的集合字符串减去字符串的长度

from collections import Counter

def do_find_duplicates(x):
    dup_chars = 0
    for key,val in Counter(x).items():
        if val > 1: dup_chars += 1
    print(dup_chars)

do_find_duplicates('hello2020')
def duplicate_count(string):
    return len(string) - len(set(string))

print(duplicate_count("hello2020"))
#3

当角色重复多次时会发生什么?对于
“hello202020”
,结果是否不同?简单的回答可能涉及
集合。计数器
,然后在
计数器
.items()
上求和一个生成器表达式,但您不够具体。理想情况下,试着自己做,如果你的代码不起作用,就发表一篇文章。目的是计算重复的数量,所以它仍然输出“3”。到目前为止你尝试了什么?我尝试了:
return len([x代表集合中的x,如果s.count(x)>1])
但它会使一些测试用例失败。提供这些测试用例将帮助人们了解您真正要处理的问题。感谢您的努力,我了解这个程序计算的是重复字符的数量,而不是唯一重复字符的数量。使用字符串
str=“aaaa
,程序输出3,而预期的答案是1。感谢您提供的解决方案!您是否愿意在以下行中解释它的含义:
对于键,计数器(x)中的val。items():
if val>1:dup_chars+=1
val是每个键的出现次数。键是字符串中的字符。因此,val为1表示字符只出现一次。因此,我使用if条件仅检查出现多次的字符