我正在使用Python" itertools.combinations"制作我所拥有的图像的可能组合,并进行它们之间的相应比较。但是,使用此功能,例如给定4张图像(A,B,C,D),我得到AB AC AD BC BD CD组合。
我想替换Python" itertools.combinations"通过一个函数,它只给我一个图像与其余图像的所有可能组合,因此如果A是所选图像,我想只有AB,AC,AD。你知道我怎么能拥有它吗?
答案 0 :(得分:0)
听起来你只是想要这样的东西:
def my_combinations(first, *others):
for other in others:
yield first + other
示例:
combs = my_combinations('A', 'B', 'C', 'D')
print combs
print list(combs)
输出:
<generator object my_combinations at 0x105926230>
['AB', 'AC', 'AD']
答案 1 :(得分:0)
您可以将其中一张图片与其他图片分开,然后按照您的需要进行组合。在这种情况下,只使用列表理解:
images = ('A','B','C','D')
first = images[0] # just A
others = images[1:] # just B,C,D
print([(first, img) for img in others])
# [('A', 'B'), ('A', 'C'), ('A', 'D')]