Python程序查找字符串中的所有重复字符
本文教你如何编写一个Python程序来查找字符串中的所有重复字符。
字符串中重复出现的字符被称为重复字符。当我们说要打印字符串中的重复字符时,我们指的是打印出该字符串中出现次数超过一次的每个字符,包括空格。
输入输出场景
以下是查找字符串中的所有重复字符的输入输出场景:
Input: TutorialsPoint
Output: t, o, i
如我们所见,给定的字符串”TutorialsPoint”中重复的字符是有”t”,出现了3次,”o”出现了2次,”i”出现了2次。
算法
以下算法将搜索一个字符串中是否有重复的字符-
- 创建一个字符串并将其存储在一个变量中。
-
为了找到重复的字符,使用两个循环。通过外循环选择一个字符,并将变量count设置为1。
-
使用内循环将选择的字符与字符串中的其他字符进行比较。
-
如果找到匹配的字符,将计数加1。
-
如果内循环结束后一个字符的计数值大于1,则字符串中存在重复的字符。
-
打印字符的计数和所有重复的字符。
-
结束。
我们可以用不同的方法实现上述算法,让我们逐个看一下-
使用循环
为了重复地迭代一个序列,使用一个 for循环 。这更像是在其他面向对象编程语言中看到的迭代器方法,而不像其他编程语言中的for关键字。
示例
以下是使用循环查找字符串中所有重复字符的示例-
string = "Welcome to TutorialsPoint family";
print("All the duplicate characters in the string are: ");
# Counting every characters of the string
for s in range(0, len(string)):
count = 1;
for t in range(s+1, len(string)):
if(string[s] == string[t] and string[s] != ' '):
count = count + 1;
# setting the string t to 0 to avoid printing the characters already taken
string = string[:t] + '0' + string[t+1:];
# If the count is greater than 1, the character is considered as duplicate
if(count > 1 and string[s] != '0'):
print(string[s]," - ",count);
输出
以下是上述代码的输出结果 –
All the duplicate characters in the string are:
e - 2
l - 3
o - 4
m - 2
t - 3
o - 3
t - 2
o - 2
i - 3
a - 2
l - 2
i - 2
使用列表和count()方法
可以使用Python语言的count()函数计算字符串中字符或子字符串的频率。它返回的值是出现的次数。
示例2
以下是使用count()方法在字符串中查找所有重复字符的示例:
# initializing the string
str = "tutorialspoint"
# initializing a list to add all the duplicate characters
duplicate_char = []
for character in str:
# check whether there are duplicate characters or not
# returning the frequency of a character in the string
if str.count(character) > 1:
# append to the list if it is already not present
if character not in duplicate_char:
duplicate_char.append(character)
print(*duplicate_char)
输出
以下是上述代码的输出结果 –
t o i
使用Counter()方法
Python的Counter子类dict是专门用于计算可哈希对象的。它是一个字典,其中数字是值,对象是键。通常情况下,使用Counter时,您将一个可哈希对象的序列或可迭代对象作为输入传递给类的构造函数。
示例
使用Counter()方法,创建一个以字符串为键、频率为值的字典。随后,创建一个临时变量,并按照以下示例打印每个键派生出的索引,其中值大于1。
from collections import Counter
def duplicate_character(input):
# creating the dictionary by using counter method having strings as key and its frequencies as value
string = Counter(input)
# Find the number of occurrence of a character and getting the index of it.
for char, count in string.items():
if (count > 1):
print(char)
# Driver code
if __name__ == "__main__":
input = 'TutorialsPoint'
duplicate_character(input)
输出
以下是上述代码的输出结果 –
t
o
i