在Python中将小写字符更改为大写,反之亦然

时间:2018-02-05 04:25:08

标签: python string

我试图写一个函数,给定一个字符串返回另一个字符串,将其小写字符翻转为大写字母,反之亦然。

我目前的方法如下:

var result = dbSet...(existing);

result += ClientAccess(dbSet); //I know this don't work

然而,字符串实际上没有改变,我应该如何改变循环内的字符呢?

PS:我知道s.swapcase()很容易解决这个问题,但我想在for循环期间改变字符串中的字符。

4 个答案:

答案 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)

您可以使用 swapcase

string.swapcase(s)

返回s的副本,但小写字母转换为大写字母,反之亦然。

来源:Python docs

答案 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。