使用递归将 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
我是 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