python 用字符串和整数大写嵌套列表
python capitalize nested list with strings and integers
我试图将此嵌套列表中每个单词的第一个字母大写,但我似乎无法弄清楚如何使 Python "ignore" 最后一个元素 8 和 7 但仍然将它们保留在列表中。
(仅供参考,我现在只接触了大约两周的编程,所以对我来说还是很陌生)
def capitalize_nested(names):
if isinstance(names, list):
return [capitalize_nested(s) for s in names]
else:
return names.capitalize()
capitalize_nested([['Loraine','Jessica'],'Philip',['Dave', 'Jones'], 8, 7])
希望得到某种提示之类的
提前致谢
你检查元素是否是一个列表来决定是否递归。如果它不是一个列表,那么你需要确定该元素是否是一个字符串(在这种情况下大写)或不是(在这种情况下 return 它未修改)。
不打算给出代码 - 你就快完成了,这是个好习惯 =)
如果您被允许更改输入,那么您可以在遍历列表时就地进行:
def capitalizeNested(L):
for i,item in enumerate(L):
if isinstance(item, list):
L[i] = [it.title() for it in item]
elif isinstance(item, str):
L[i] = item.title()
输出:
In [54]: L = [['loraine','jessica'],'philip',['dave', 'jones'], 8, 7]
In [55]: capitalizeNested(L)
In [56]: L
Out[56]: [['Loraine', 'Jessica'], 'Philip', ['Dave', 'Jones'], 8, 7]
我试图将此嵌套列表中每个单词的第一个字母大写,但我似乎无法弄清楚如何使 Python "ignore" 最后一个元素 8 和 7 但仍然将它们保留在列表中。 (仅供参考,我现在只接触了大约两周的编程,所以对我来说还是很陌生)
def capitalize_nested(names):
if isinstance(names, list):
return [capitalize_nested(s) for s in names]
else:
return names.capitalize()
capitalize_nested([['Loraine','Jessica'],'Philip',['Dave', 'Jones'], 8, 7])
希望得到某种提示之类的 提前致谢
你检查元素是否是一个列表来决定是否递归。如果它不是一个列表,那么你需要确定该元素是否是一个字符串(在这种情况下大写)或不是(在这种情况下 return 它未修改)。
不打算给出代码 - 你就快完成了,这是个好习惯 =)
如果您被允许更改输入,那么您可以在遍历列表时就地进行:
def capitalizeNested(L):
for i,item in enumerate(L):
if isinstance(item, list):
L[i] = [it.title() for it in item]
elif isinstance(item, str):
L[i] = item.title()
输出:
In [54]: L = [['loraine','jessica'],'philip',['dave', 'jones'], 8, 7]
In [55]: capitalizeNested(L)
In [56]: L
Out[56]: [['Loraine', 'Jessica'], 'Philip', ['Dave', 'Jones'], 8, 7]