使用递归将 Python 中的小写字母转换为大写字母

Converting lowercase to uppercase in Python using recursion

我是 Python 的学生,通过 类 学习它。我们有一个问题,我们有一个列表作为输入,我们必须将每个元素转换为大写。到目前为止,这是我的代码:

def strChange(lst):
    ch=''
    for i in range(len(lst)):
        if lst[i]>='a' and lst[i]<='z' :
            ch+=chr(ord(lst[i])-32)
    return ch
caps =  eval(input("Enter list: "))
caps2 = []
for i in range(len(caps)):
    a = strChange(caps[i])
    caps2.append(a)
print(caps2)

它完成了工作...但问题是,它没有使用递归!而且我完全不知道在哪里使用它!我对所有建议持开放态度,但首选通俗易懂的术语。

编辑:添加示例输入

input: ['rohit', 'mohan', 'anjali', 'ankit', 'akshit']

output: ['ROHIT', 'MOHAN', 'ANJALI', 'ANKIT', 'AKSHIT']

这很愚蠢,但这是您的做法。您处理一个字符并为其余字符再次调用该函数。

def strChange(lst):
    if not lst:
        return ''
    ch = lst[0]
    if 'a' <= ch <= 'z':
        ch = chr(ord(ch)-32)
    return ch + strChange(lst[1:])
caps =  eval(input("Enter list: "))
for word in caps:
    print(strChange(word))

也许你可以在嵌套列表的情况下使用递归?如果列表中的项目是列表,你用它调用相同的函数?

def strChange(lst):
    for index, item in enumerate(lst):
        if type(item) is list:
            strChange(item)
        else:
            lst[index] = item.upper()
    return lst