繁体   English   中英

python使用字符串和整数将嵌套列表大写

[英]python capitalize nested list with strings and integers

我试图将嵌套列表中每个单词的首字母大写,但是我似乎无法弄清楚如何使Python“忽略”最后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])

希望能得到一些暗示或类似的感谢

您检查元素是否为列表,以确定是否递归。 如果不是列表,则需要确定该元素是否为字符串(在这种情况下为大写)(在这种情况下只需将其返回未修改的位置)即可。

不会提供代码-您快要准备好了,这是个好习惯=)

如果允许您更改输入,那么可以遍历列表,就地进行输入:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM