我有一个包含300个txt文件的文件夹。假设.txt名称是a,b,c,d等。 我需要用python脚本比较每一对。我需要比较a-b,a-c,a-d,b-c,b-d。我不想要a-a而且我也不想同时拥有a-b和b-a。 我的猜测就像是
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 :(得分:2)
您可以使用itertools中的combinations:
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