2016-11-27 50 views
-2

我有一個包含300個txt文件的文件夾。可以說.txt名稱是a,b,c,d等。 我需要將每個對與一個python腳本進行比較。我需要比較a-b,a-c,a-d,b-c,b-d。我不想擁有a-a,也不想擁有a-b和b-a。 我的猜測是像Pythons列表中的值的配對

for x in ['a', 'b', 'c', 'd']: 
    for y in ['a', 'b', 'c', 'd']: 
      if x != y: 
      print(x , y) 

但我得到兩個A-B和B-A等。如果我在300的文件名擴展它,我會得到一個幾千複製輸出。

有什麼建議嗎?

+0

您正在談論'combinations',並且有做的方法這在['itertools'](https://docs.python.org/3.5/library/itertools.html?highlight=combinations#itertools.combinations):'for x,y in itertools.combinations('abcd',2 ):' – AChampion

回答

1

可以使用combinations從itertools:

from itertools import combinations 

files = ['a', 'b', 'c', 'd'] 
filesCombine = combinations(files, 2) # [('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')] 
for f1, f2 in filesCombine: 
    # compare f1 with f2 

第二個參數是每個組合的長度,在這種情況下2

+0

非常感謝你,那正是我需要的! –

+0

不客氣@EfthimisAvgeris,你可以接受答案,如果它幫助你,在答案左側上下箭頭的下方(:。 –

相關問題