У меня есть большой список всех возможных комбинацийСравнение перестановке и Комбинации
items = ["Apple","Banana","Orange","Peach"]
combs = []
for c in combinations(items, 2)):
combs.append([c[0],c[1]])
Что дает:
[['Apple', 'Banana'], ['Apple', 'Orange'], ['Apple', 'Peach'], ['Banana', 'Orange'], ['Banana', 'Peach'], ['Orange', 'Peach']]
И пользователь может ввести два пункта из этого списка,
Я хочу получите Индекс указанной комбинации в списке.
Я могу это сделать Если пользователь вводит правильный порядок, например, «Apple Banana», но нет, если это противоположное «Банановое яблоко». Потому что нет [«Банан», «Яблоко»]
Я знаю, что могу использовать перестановки во вводе, поэтому он дает как [«Банан», «Яблоко»], так и правильный [«Яблоко», «Банана», ]. Но как проверить, находится ли кто-то в другом, не используя вложенные петли? Даже эта небольшая проверка приводит к 12 итерациям.
Вот петля гнездо:
for pr in permutations([input1, input2], 2):
for comb in combinations(items, 2):
if ..........:
dosomething
Как об использовании 'set' для хранения комбинаций? –
У Мартайна есть правильный ответ. –