Member 14068174 Ответов: 1

Мне нужна помощь в этом фрагменте кода?


Эй,ребята,что, s up это вы, r boy ubaid и сегодня я вернулся с другой проблемой, которую я пытаюсь понять из последних 3 дней.Так что,ребята, вы мне нужны, Р помощь в понимании этого


деф переставлять(с):

из = []

если len(s) == 1:
возвращение с



еще:

по мне,пусть в перечислить(с):

для Перми в перестановки(с [я] + с[я+1:]):

out += [let + Пермь]

возвращение из







Это код перестановки,и он использует рекурсию, и я катался по голове с прошлых 3 дней на этом маленьком коде, и я все еще не понимаю его. Басово все, что мне нужно понять, это то, что это let Для и как этот код делает перестановки остальной части письма, если вы объясните это, как и когда это происходит в деталях, я думаю, что это решит мою проблему.

Что я уже пробовал:

Закатил голову от последних 3 дней по этой проблеме ..

Richard MacCutchan

Это классический пример плохо написанного кода. Имена переменных слишком коротки и не дают никакого представления ни об их типе, ни о функции. Это особенно проблема в таком языке, как python, который не использует строгую типизацию.

1 Ответов

Рейтинг:
6

CPallini

let является ли текущий "перечисляемый" элемент списка (тогда как i является соответствующим индексом).
Я думаю, что лучший способ понять такой код-это мысленное (карандаш и бумага необязательны) выполнение: попробуйте мысленно выполнить следующий код:

l = ["a","b","c"]
permute(l)


Member 14068174

Я уже понимаю trhat,но я не понимаю, как он делает разные перестановки слова , например abc, как он делает acb и abc .. Как делаются эти две различные перестановки

CPallini

Постарайтесь записать все, что происходит с ребенком. out список во время выполнения программы (мысленного).

Member 14068174

Сэр, я был бы признателен, если бы вы связались со мной по ведио..

CPallini

Взгляните на мой последний совет/трюк:
https://www.codeproject.com/Tips/1275693/Recursive-Permutations-in-Python