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() 函数,将输入字符串传递给它并打印结果。
例子
以下程序使用字典哈希返回字符串,在将字符串中的所有重复字符转换为大写后 –
# 将字符串中重复字符转换为大写的函数
# 通过接受输入字符串作为参数定义函数
def RepeatedCharToUpper(inputString):
# 创建一个空字典来存储带有其频率的字符
newDict = {}
# 遍历输入字符串的每个字符
for c in inputString:
# 检查字符是否出现在上述字典中
if c in newDict:
# 将字符的频率/计数增加1
newDict[c] = newDict[c]+1
# 否则将该字符插入字典
else:
newDict[c] = 1
# 采用变量来存储字符串
res = ''
# 遍历输入字符串的每个字符
for c in inputString:
# 检查字符是否出现了大于1次(重复字符)
if newDict[c] > 1:
# 因为它是重复的所以将该字符转换为大写
c = c.upper()
# 将每个字符添加到结果字符串中
res = res+c
# 返回结果字符串
return res
# 输入字符串
inputString = 'hello tutorialspoint'
# 调用上述定义的RepeatedCharToUpper()函数
# 通过将输入字符串传递给它
print(RepeatedCharToUpper(inputString))
输出
在执行以上程序后将生成以下输出 –
heLLO TuTOrIaLspOInT
方法2:使用count()函数
count()函数
返回给定值(字符)在字符串中出现的次数。
语法
string.count(value, start, end)
例子
以下程序使用count()函数将字符串中所有重复字符转换为大写后返回一个字符串 –
# 输入字符串
inputString = 'hello tutorialspoint'
# 用于存储结果字符串的空字符串
res = ""
# 遍历输入字符串的每个字符
for c in inputString:
# 检查当前字符是否不是空格,并且它的频率大于1
if(c != "" and inputString.count(c) > 1):
# 如果条件成立,将其转换为大写并将其添加到结果字符串中
res += c.upper()
else:
# 否则将该当前字符添加到结果字符串中而不进行修改
res += c
print("在大写字母后得到的字符串是:\n", res)
输出
在执行以上程序后将生成以下输出 –
在大写字母后得到的字符串是:
heLLO TuTOrIaLspOInT
方法3:使用replace()和len()函数
len()函数 − 当对象是字符串时,len()方法返回对象中项目的数量。 当对象是字符串时,len()函数返回字符串中字符的数量。
replace()函数 − 返回替换旧子字符串的所有出现的新子字符串的字符串副本。
语法
string.replace(old, new, count)
例子
以下程序使用replace()和len()函数将字符串中的所有重复字符转换为大写后返回一个字符串 –
# 输入字符串
inputString = 'hello tutorialspoint'
#获取字符串长度
stringLength = len(inputString)
# 用于存储结果字符串的空字符串
res = ""
#遍历输入字符串的每个字符
for c in inputString:
# 用空格替换当前字符
k = inputString.replace(c, "")
if(len(k) != stringLength-1):
res += c.upper()
else:
res += c
print("在大写字母后得到的字符串是:\n", res)
输出
在执行上述程序时,将生成以下输出-
重复字符大写后的结果字符串:
heLLO TuTOrIaLspOInT
方法4:使用 Counter() 函数
Counter()函数 - 它是一个子类,可以计算可哈希对象的数量。当调用/调用它时,它会隐式地创建一个可迭代的哈希表。
在这里,它返回字符串的字符频率,以键值对的形式。
例子
以下程序使用 Counter() 函数将字符串中的所有重复字符转换为大写字母后返回一个字符串-
# 从 collections 模块导入 Counter
from collections import Counter
# 输入字符串
inputString = 'hello tutorialspoint'
# 用于存储结果字符串的空字符串
res = ""
# 获取每个字符的频率作为一个字典
frequency = Counter(inputString)
# 遍历输入字符串中的每个字符
for c in inputString:
# 检查当前字符不是空格且其频率大于 1
if(c != "" and frequency[c] > 1):
res += c.upper()
else:
res += c
print("重复字符大写后的结果字符串:\n", res)
输出
重复字符大写后的结果字符串:
heLLO TuTOrIaLspOInT
结论
在本文中,我们学习了四种不同的方法来将字符串中的重复字符大写。我们还发现了如何使用字典哈希来获取任何可迭代对象的频率。