Python程序 将字符串中的重复字符大写化
在这篇文章中,我们将学习如何在python中对字符串中的重复字符进行大写。
使用的方法
以下是完成这一任务的各种方法
- 使用字典哈希法
-
使用count()函数
-
使用 replace() 和 len() 函数
-
使用counter()函数
例子
假设我们已经采取了一个包含一些随机文本的 输入字符串 。现在我们将使用上述方法将输入字符串中的重复字符转换成大写字母。
输入
inputString = 'hello tutorialspoint'
输出
heLLO TuTOrIaLspOInT
在上面的输入字符串中,字符 l, o, t, i 是重复的。因此,它们被转换为大写字母/大写字母。
方法1:使用字典哈希法
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤–。
- 创建一个函数 RepeatedCharToUpper() ,通过接受输入字符串作为参数,将字符串中的重复字符返回到大写字母。
-
创建一个空的字典来存储字符串字符的频率。
-
使用 for循环 来遍历输入字符串的每个字符。
-
使用 if条件 语句检查当前字符是否已经存在于上述创建的新字典中。
-
如果条件为真,将字符的频率/数量增加1
-
否则将此字符添加到字典中,值为1。
-
再次使用for循环来遍历输入字符串的每个字符。
-
使用 if条件 语句检查当前字符的频率是否大于1(如果count>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()函数
返回给定值(char)在一个字符串中出现的次数。
语法
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种将字符串中的重复字符大写的不同方法。我们还发现了如何使用字典散列法获得任何可迭代的频率。