【问题标题】:Change a string within a multi-dimensional array更改多维数组中的字符串
【发布时间】:2014-11-04 23:23:36
【问题描述】:

我正在尝试将函数应用于列表中的列表中的字符串列表,然后以相同的形式返回它。例如,我有一个大列表,其中包含两个子列表中的一些字符串。我想将字母 a 添加到每个字符串中,然后以相同的形式返回我的列表。

some_large_list = [['str1', 'str2', 'str3'], ['str4', 'str5', 'str6']]

new_large_list = []

for lst in some_large_list:
    for word in lst:
        new_large_list.append(add_letter_a(word))

new_large_list = [['str1a', 'str2a', 'str3a'], ['str4a', 'str5a', 'str6a']]

但我得到了:

new_large_list = ['str1a', 'str2a', 'str3a', 'str4a', 'str5a', 'str6a']

如何将字符串保存在其单独的子列表中?

【问题讨论】:

    标签: python string multidimensional-array


    【解决方案1】:

    您正在浏览列表列表,您应该以相同的方式重新构建它。除此之外,你应该实现你的函数add_letter_a。 尝试使用 list 。存储您重新创建的项目,以及另一个用于存储列表的主列表。 您的代码应如下所示:

    some_large_list = [['str1', 'str2', 'str3'], ['str4', 'str5', 'str6']]
    
    new_large_list = []
    
    def add_letter_a(word):
        return word+'a'
    
    for lst in some_large_list:
        s=[]
        for word in lst:
            s.append(add_letter_a(word))
        new_large_list.append(s)
    
    print new_large_list 
    

    输出:

    [['str1a', 'str2a', 'str3a'], ['str4a', 'str5a', 'str6a']]
    

    使用list comprehension. 有更好的方法

    some_large_list = [['str1', 'str2', 'str3'], ['str4', 'str5', 'str6']]
    new_large_list = [[ word+'a' for word in listOfWords ] for listOfWords in some_large_list ]
    print new_large_list
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多