【问题标题】:python capitalize nested list with strings and integerspython用字符串和整数大写嵌套列表
【发布时间】:2015-05-09 20:34:04
【问题描述】:

我试图将这个嵌套列表中每个单词的第一个字母大写,但我似乎无法弄清楚如何让 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])

希望能得到一些提示或类似的东西 提前致谢

【问题讨论】:

    标签: python string list nested capitalize


    【解决方案1】:

    如果您被允许更改输入,那么您可以在迭代列表时就地进行:

    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]
    

    【讨论】:

    • 这可能是个愚蠢的问题,但是 [it.title()] 中的 'it' 代表什么?
    • @Calchas93: for it in item item中的元素,调用每个it
    【解决方案2】:

    你检查元素是否是一个列表来决定是否递归。如果它不是一个列表,那么您需要确定该元素是否是一个字符串(在这种情况下大写)或不是(在这种情况下只返回它未修改)。

    不打算提供代码 - 你快到了,这是一个很好的做法 =)

    【讨论】:

      猜你喜欢
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      相关资源
      最近更新 更多