Python 将字符串中重复的字符转换为大写
在本文中,我们将学习如何在Python中将字符串中的重复字符转换为大写。
使用的方法
以下是实现此任务的各种方法:
- 使用字典哈希
-
使用count()函数
-
使用replace()和len()函数
-
使用Counter()函数
示例
假设我们已经输入了一个包含一些随机文本的输入字符串。我们将使用上述方法将输入字符串中的重复字符转换为大写。
输入
inputString = 'hello tutorialspoint'
输出
heLLO TuTOrIaLspOInT
在上述输入字符串中,字符 l, o, t, i 重复出现。因此它们被转换为大写字母。
方法1:使用字典哈希
步骤
以下是执行所需任务的算法/步骤-。
- 创建一个名为 RepeatedCharToUpper() 的函数,该函数通过接受输入字符串作为参数来返回字符串中重复的字符转换为大写的结果。
-
创建一个空字典来存储字符串字符的频率。
-
使用 for循环 遍历输入字符串的每个字符。
-
使用 if条件 语句检查当前字符是否已经存在于上述新字典中。
-
如果条件为真,则将字符的频率/计数加1。
-
否则将该字符添加到字典中,并将值设为1。
-
再次使用for循环遍历输入字符串的每个字符。
-
使用 if条件 语句检查当前字符的频率是否大于1(如果计数> 1,则重复出现)。
-
使用 upper()函数 将字符转换为大写。
-
将当前字符添加到结果字符串中。
-
返回结果字符串。
-
创建一个变量来存储 输入字符串 。
-
通过将输入字符串传递给上述定义的 RepeatedCharToUpper() 函数并打印结果来调用该函数。
示例
以下程序使用字典哈希将字符串中所有重复的字符转换为大写后返回结果字符串 –
# function to change the repeated characters in a string to uppercase
# by accepting the input string as an argument
def RepeatedCharToUpper(inputString):
# Creating an empty dictionary to store characters with their frequencies
newDict = {}
# traversing through each character of an input string
for c in inputString:
# checking whether the character is present in the above dictionary
if c in newDict:
# Incrementing the frequency/count of character by 1
newDict[c] = newDict[c]+1
# Else insert this character in the dictionary
else:
newDict[c] = 1
# Taking a variable to store the string
res = ''
# traversing through each character of an input string
for c in inputString:
# checking if character frequency is greater than 1(repeated character)
if newDict[c] > 1:
# As it is repeated so changing this character into uppercase
c = c.upper()
# adding each character to the resultant string
res = res+c
# returning the resultant string
return res
# input string
inputString = 'hello tutorialspoint'
# calling the above defined RepeatedCharToUpper() function
# by passing input string to it
print(RepeatedCharToUpper(inputString))
输出
在执行时,以上程序将生成以下输出 –
heLLO TuTOrIaLspOInT
方法2:使用count()函数
字符串count()函数
返回给定值(字符)在字符串中出现的次数。
语法
string.count(value, start, end)
示例
以下程序使用count()函数将字符串中的所有重复字符转换为大写,并返回一个字符串 –
# input string
inputString = 'hello tutorialspoint'
# empty string for storing resultant string
res = ""
# traversing through each character of an input string
for c in inputString:
# checking whether the current character is not space and # its frequency is greater than 1
if(c != "" and inputString.count(c) > 1):
# converting to uppercase if the condition
# and adding it to the resultant string
res += c.upper()
else:
# else adding that current character to the resultant string without modifying
res += c
print("Resultant string after capitalizing repeated characters:\n", res)
输出
执行上述程序后,将生成以下输出 –
Resultant string after capitalizing repeated characters:
heLLO TuTOrIaLspOInT
方法3:使用replace()和len()函数
len()函数 - len()方法返回对象中的项数。当对象是字符串时,len()函数返回字符串中的字符数。
replace()函数 - 返回一个替换所有旧子字符串为新子字符串的字符串副本。
语法
string.replace(old, new, count)
示例
以下程序使用replace()和len()函数将字符串中所有重复的字符转换为大写,然后返回字符串。
# input string
inputString = 'hello tutorialspoint'
# getting string length
stringLength = len(inputString)
# empty string for storing resultant string
res = ""
# traversing through each character of an input string
for c in inputString:
# replacing the current character with space
k = inputString.replace(c, "")
if(len(k) != stringLength-1):
res += c.upper()
else:
res += c
print("Resultant string after capitalizing repeated characters:\n", res)
输出
执行上面的程序后,将生成以下输出:
Resultant string after capitalizing repeated characters:
heLLO TuTOrIaLspOInT
方法4:使用Counter()函数
Counter()函数 - 一个子类,用于计算可哈希对象的数量。在调用/调用时,它会隐式地创建一个可迭代对象的哈希表。
这里它以键值对的形式返回字符串的字符频率。
示例
以下程序使用Counter()函数将字符串中所有重复的字符转换为大写,并返回字符串。
# importing Counter from the collections module
from collections import Counter
# input string
inputString = 'hello tutorialspoint'
# empty string for storing resultant string
res = ""
# getting the frequency of characters as a dictionary
frequency = Counter(inputString)
# traversing through each character of an input string
for c in inputString:
# checking whether the current character is not space and its frequency is greater than 1
if(c != "" and frequency[c] > 1):
res += c.upper()
else:
res += c
print("Resultant string after capitalizing repeated characters:\n", res)
输出
Resultant string after capitalizing repeated characters:
heLLO TuTOrIaLspOInT
结论
在这篇文章中,我们学习了4种不同的方法来将字符串中的重复字符大写。我们还发现了如何使用字典哈希来获取任何可迭代对象的频率。