#python #python-3.x #permutation
#python #python-3.x #перестановка
Вопрос:
Моя проблема в том:
perm_list = list(range(a,b,-1))
if len(perm_list) == 1:
print(perm_list[0])
elif len(perm_list) == 2:
print(perm_list[0]* perm_list[1])
elif len(perm_list) == 3:
Я не могу найти способ уменьшить это, если я смогу это сделать, было бы здорово.
Потому что я сделаю это до 15, если я напишу это 15 раз, это будет больше и сложнее написать для меня.
Если есть меньший способ сделать это, не могли бы вы, ребята, сказать мне, пожалуйста?
Комментарии:
1. Пожалуйста, объясните, что вы пытаетесь сделать. Ваш код не очень понятен. Вы не привели достаточно примера, чтобы понять, что вы пытаетесь сделать. Как будет
elif
выглядеть 15-е число?2. Я пытаюсь сделать перестановку, например, вы поставите 2 числа P (a.b)
3. И максимальное число равно 15
4. если вы поставите 15 и 2, это будет p (15,2), и оно должно быть 15,14
5. Похоже, вы просто умножаете все элементы в списке?
Ответ №1:
Просто используйте itertools
библиотеку
from itertools import permutations
lst = list(range(3))
result = list(permutations(lst, 2))
print(result)
=> [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
print(list(permutations(lst, 3)))
=> [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]