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