我试图写一个函数,给定一个字符串返回另一个字符串,将其小写字符翻转为大写字母,反之亦然。
我目前的方法如下:
var result = dbSet...(existing);
result += ClientAccess(dbSet); //I know this don't work
然而,字符串实际上没有改变,我应该如何改变循环内的字符呢?
PS:我知道s.swapcase()很容易解决这个问题,但我想在for循环期间改变字符串中的字符。
答案 0 :(得分:5)
def swap_case(s):
swapped = []
for char in s:
if char.islower():
swapped.append(char.upper())
elif char.isupper():
swapped.append(char.lower())
else:
swapped.append(char)
return ''.join(swapped)
答案 1 :(得分:3)
答案 2 :(得分:2)
>>> name = 'Mr.Ed' or name= ["M","r",".","E","d"]
>>> ''.join(c.lower() if c.isupper() else c.upper() for c in name)
'mR.eD'
答案 3 :(得分:1)
您的代码无效,因为您在转换后不存储字符。您创建了包含所有字符的列表,然后您可以访问这些值而不实际保存它们。此外,您应该让函数返回str1
,否则您将永远无法获得结果。这是一个解决方法:
def swap_case(s):
word = []
for char in s:
if char.islower():
word.append(char.upper())
else:
word.append(char.lower())
str1 = ''.join(word)
return str1
顺便说一下,我知道你想用for循环来做,但你应该知道有更好的方法来执行这个更加pythonic。