2016-03-24 7 views
1

私はPython "itertools.combinations"を使って、私が持っているイメージの可能な組み合わせを作り、それぞれの比較を行います。しかし、例えば4つの画像(A、B、C、D)を与えられたこの機能では、AB AC AD BC BDのCDの組み合わせが得られます。Pythonで可能なイメージの組み合わせ

Python "itertools.combinations"を1つのイメージの可能なすべての組み合わせのみを残す関数で置き換えたいので、Aが選択されたイメージの場合はAB、AC、ADのみが必要です。私はそれをどのように持つことができるか知っていますか?

+0

「itertools.combinations」を置き換えたいとお考えですか?新しい関数を書くだけでいいですか、実際にあなたの関数を呼び出すために 'itertools.combinations'を呼び出すコードも必要ですか? –

答えて

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

をあなたが他の人からあなたのイメージの1つを分割し、組み合わせることができますあなたが望む方法この場合、リストの理解のみを使用する:

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')] 
関連する問題