更改多维数组中的字符串

时间:2014-11-04 23:23:36

标签: python string multidimensional-array

我尝试将函数应用于列表中列表中的字符串列表,然后以相同的形式返回它。例如,我有一个大型列表,其中包含两个子列表中的一些字符串。我想在每个字符串中添加字母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']

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

1 个答案:

答案 0 :(得分:0)

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

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