python 2.7 中的嵌套列表(列表的列表)
Nesting lists in python 2.7 (list of list)
我需要创建一个列表列表。我已经包含了一些导致我遇到问题的代码。底部的 masterList 是所需的输出。我已尝试解释我的代码并演示清楚理解的步骤。
storeTask = list(islice((t for t in list5 if t[1] == 'Tasked'), 3))
打印 storeTask returns 这个:
[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY','XXXX', ['367179', 'Image 6'], ['367179', 'VID 12']], ['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-XXXX', 'XXXX ', ['367194', 'Image 1'], ['367194', 'VID 5']], ['Acq888888', 'Tasked', 'Location', 'Movie', '20xx-MM-YYYY', 'XXXX', ['367195', 'VID 9']]]
我循环遍历 storeTask 并对元素进行计数。如果计数为 8,我删除第二个嵌套列表的第一个元素。
for st in storeTask:
taskedL = len(st)
if taskedL == 6: pass
if taskedL == 7: pass
if taskedL == 8:
longList = st[7]
del(longList[0])
打印 st returns 这个:
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367179', 'Image 6'], ['VID 12']]
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367194', 'Image 1'], ['VID 5']]
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367195', 'VID 9']]
要删除嵌套列表,我使用 flatten
mstock = flatten(st)
打印 mstock returns:
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5']
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']
这正是我需要的结果。但是,我需要将这些列表恢复到主列表中。以下是我希望输出的内容:
masterList = [
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5']
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']
]
** 我试图创建一个空列表并附加它们,但结果为每个列表生成了这个:
[['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']]
[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']]
我也问过类似的问题,但是没用成功
额外的代码会有所帮助,像下面这样的代码能解决您的问题吗?
masterList = [flatten(st) for st in storeTask]
我需要创建一个列表列表。我已经包含了一些导致我遇到问题的代码。底部的 masterList 是所需的输出。我已尝试解释我的代码并演示清楚理解的步骤。
storeTask = list(islice((t for t in list5 if t[1] == 'Tasked'), 3))
打印 storeTask returns 这个:
[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY','XXXX', ['367179', 'Image 6'], ['367179', 'VID 12']], ['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-XXXX', 'XXXX ', ['367194', 'Image 1'], ['367194', 'VID 5']], ['Acq888888', 'Tasked', 'Location', 'Movie', '20xx-MM-YYYY', 'XXXX', ['367195', 'VID 9']]]
我循环遍历 storeTask 并对元素进行计数。如果计数为 8,我删除第二个嵌套列表的第一个元素。
for st in storeTask:
taskedL = len(st)
if taskedL == 6: pass
if taskedL == 7: pass
if taskedL == 8:
longList = st[7]
del(longList[0])
打印 st returns 这个:
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367179', 'Image 6'], ['VID 12']]
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367194', 'Image 1'], ['VID 5']]
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367195', 'VID 9']]
要删除嵌套列表,我使用 flatten
mstock = flatten(st)
打印 mstock returns:
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5']
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']
这正是我需要的结果。但是,我需要将这些列表恢复到主列表中。以下是我希望输出的内容:
masterList = [
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5']
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']
]
** 我试图创建一个空列表并附加它们,但结果为每个列表生成了这个:
[['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']]
[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']]
我也问过类似的问题,但是没用成功
额外的代码会有所帮助,像下面这样的代码能解决您的问题吗?
masterList = [flatten(st) for st in storeTask]