Как избавиться от повторов в цикле for в Python?
У меня стоит задача пробежаться по файлам из папок в директории speakers и сравнить между собой все сочетания файлов внутри каждой субдиректории.
Однако когда запускаю цикл, на выходе - каждое сочетание дублируется (на рисунке пару дублей внутри субдиректории spk1 для примера подчеркнул красным, но сочетания файлов дублируются и во всех прочих). На изображении (слева) также можно увидеть структуру папок и файлов внутри них (в каждой субдиректории - по 4 файла).
Каким образом можно получить при переборе все возможные сочетания файлов каждой субдиректории, но только единожды, а не как сейчас - дважды (по 12 сочетаний вместо 6-ти)?
Код:
import os
from itertools import combinations
for root, dirs, files in os.walk('/content/drive/MyDrive/speakers'):
for elem in files:
res = list(combinations(files, 2)) # получаем списки кортежей: [(файл 1, файл 2), (файл 1, файл 3)...(файл 3, файл 4)]
for tuples in res: # идем по каждому картежу в списке
print(f'{tuples[0]}', f'{tuples[1]}')
Ответы (1 шт):
Видимо, проблема находится "под капотом" Google Colab, поскольку повторная инициация того же кода спустя некоторые время дала верный результат
