У меня есть список, который выглядит как:Как связать каждый элемент в списке с другим в списке списков в Python?
results=[['000', '111', '000'],
['110', '000', '101'],
['000', '000', '000']]
Мне нужно пару каждый элемент в подсписке с каждым другим элементом (кроме самого себя). Желаемый выход:
[[['000', '111'], ['000', '000'], ['111', '000']],
[['110', '000'], ['110', '101'], ['000', '101']],
[['000', '000'], ['000', '000'], ['000', '000']]]
Код Покушение:
samplefinal =[]
for sub_list in results:
for i, j in combinations(range(len(sub_list)), 2):
out = ['', '']
sample3 = []
for pair in zip(sub_list[i], sub_list[j]):
if '-' not in pair:
out[0] += pair[0]
out[1] += pair[1]
sample3.append(out)
samplefinal.append(sample3)
print samplefinal
Output: [[['111', '000'], ['111', '000'], ['111', '000']], [['000', '101'], ['000', '101'], ['000', '101']], [['000', '000'], ['000', '000'], ['000', '000']]]
Я не совсем уверен, где я могу идти неправильно. Индексы и диапазон работают отлично, любые предложения?
Мне нужно списки комбинаций не кортежи. Это делает сложнее для остальной части моего кода иметь кортежи – Biotechgeek
@Biotechgeek Я думаю, вы имеете в виду список списков ... это простое исправление ... проверьте редактирование. –