首页 > 解决方案 > 将列表附加到列表不会生成列表列表

问题描述

我觉得我已经多次这样做了,但由于某种原因,这并没有产生我期望的输出。

代码片段:

for dup in sorted(list_duplicates(video_list)):
    for dup_element in dup[1]:
        output_array.append(video_titles[dup_element])
    output_array_array.append(output_array)

print(output_array_array)

list_duplicates 的输出接受一个数组并返回一组元组。下面的例子:

[
('1-3A.mp42-1.mp43-3.mp44-1.mp45-1.mp46-1.mp47-7.mp46-2.mp48-1.mp49-2.mp410-2.mp411-3.mp4', [1, 3]),
('1-3B.mp42-1.mp43-3.mp44-1.mp45-1.mp46-1.mp47-7.mp46-2.mp48-1.mp49-2.mp410-2.mp411-3.mp4', [2, 4])
]

for 循环的预期输出是一个列表列表,应该如下所示:

[['Week 3 Day 2', 'Week 3 Day 4',], 
 ['Week 3 Day 3', 'Week 3 Day 5']]

相反,我得到:

[['Week 3 Day 2', 'Week 3 Day 4', 'Week 3 Day 3', 'Week 3 Day 5'],
 ['Week 3 Day 2', 'Week 3 Day 4', 'Week 3 Day 3', 'Week 3 Day 5']]

我相信错误来自for dup_element in dup[1]:循环以及我放置的位置,output_array.append但我似乎无法修复它。

任何帮助,将不胜感激。

标签: pythonlist

解决方案


您需要output_array在外循环中重新初始化:

for dup in sorted(list_duplicates(video_list)):
    output_array = []  # moved from three lines up

现在您一遍又一遍地附加相同的列表。


推荐阅读