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

时间:2018-03-06 23:24:42

标签: python list-comprehension

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

if findGirl in searchGirls:

等等。 谢谢!

2 个答案:

答案 0 :(得分:1)

>>> 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']]

答案 1 :(得分:0)

使用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')]