我想從僅作為輸入的字串中替換每個第二次出現的字符。僅使用 .replace 方法。
例如:
輸入: asdasdasdasd
輸出應該是:asdASDasdasd
def main(string):
for char in string:
string.replace(char, char.upper())
return string
我對 Python 比較陌生,我不知道該怎么做。
uj5u.com熱心網友回復:
或者,您可以使用字典并將每個字符的第二次出現設為大寫:
def upper_case_second_occurrence(s):
d = {}
s = list(s)
for i, c in enumerate(s):
d[c] = d.get(c, 0) 1
if d[c] == 2:
s[i] = c.upper()
return "".join(s)
if __name__ == "__main__":
print(upper_case_second_occurrence("aaa"))
print(upper_case_second_occurrence("aaaaaa"))
print(upper_case_second_occurrence("asdasdasdasd"))
輸出:
aAa
aAaaaa
asdASDasdasd
uj5u.com熱心網友回復:
試試這個:
def main(s):
l = []
string = ''
y = True
for a in s:
if a in l and y:
string =a.upper()
l.remove(a)
if not len(l):
l = ''
continue
try:
l.append(a)
except AttributeError:
y = False
string =a
return(string)
print(main('asdasdasdasd')) # → asdASDasdasd
print(main('aaa')) # → aAa
print(main('aaaaa')) # → aAaaa
print(main('AAA') # → AAA
uj5u.com熱心網友回復:
嘗試使用.count():
def main(string):
new_string = ''
for char in string:
if new_string.lower().count(char) == 1: # This line checks if the count of char is 1 or not. If yes, then it appends the uppercase letter of char
new_string = char.upper()
else:
new_string = char
return new_string
輸出:
main('asdasdasdasd')
'asdASDasdasd'
main('aaaaaa')
'aAaaaa'
main('aaa')
'aAa'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473936.html
上一篇:使用strcat()時的跟蹤陷阱
