如何从一个列表中创建列表,每个列表与原始列表相似,但缺少一个项目

2024-06-23 18:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有5个文件在一个列表中。我需要创建一个列表,其中每个文件被省略一次。示例:

drive = [File_1, File_2, File_3 , File_4, File_5]
new_list_1 = [File_1, File_2, File_3, File_4]  # leaving out File_5
new_list_2 = [File_1, File_2, File_3, File_5]  # leaving out File_4
new_list_3 = [File_1, File_2, File_4, File_5]  # leaving File_3

等等。 谢谢你


Tags: 文件示例列表newdriveoutlistfile
2条回答

使用itertools.combinations

import itertools
files = ["f1", "f2", "f3", "f4", "f5"]
list(itertools.combinations(files, 4))

# => [('f1', 'f2', 'f3', 'f4'), ('f1', 'f2', 'f3', 'f5'),
#     ('f1', 'f2', 'f4', 'f5'), ('f1', 'f3', 'f4', 'f5'), 
#     ('f2', 'f3', 'f4', 'f5')]
>>> l1 = ["f1", "f2", "f3", "f4", "f5"]
>>> [[a for a in l1 if a != leave_out] for leave_out in l1]
[['f2', 'f3', 'f4', 'f5'], ['f1', 'f3', 'f4', 'f5'], ['f1', 'f2', 'f4', 'f5'], ['f1', 'f2', 'f3', 'f5'], ['f1', 'f2', 'f3', 'f4']]

相关问题 更多 >

    热门问题