Я пытаюсь изменить значение списка, которое я поставил в качестве аргумента в функции.Python, изменить значение аргументов внутри функции
это код:
def shuffle(xs,n=1):
if xs: #if list isn't empty
if n>0:
#gets the index of the middle of the list
sizel=len(xs)
midindex=int((sizel-1)/2)
for times in range(n):
xs=interleave(xs[0:midindex],xs[midindex:sizel])
return None
Код перемежать возвращает список со значениями обоих списков перепутаны.
Однако, когда я бегу:
t=[1,2,3,4,5,6,7]
shuffle(t,n=2)
print t
Список т не изменил его порядок. Функция должна возвращать None, поэтому я могу использовать jst t = shuffle (t, n). Так или иначе, я могу это сделать?
* «Функция должна возвращать None, поэтому я могу использовать jst t = shuffle (t, n).» * - это не имеет никакого смысла. Почему вы не возвращаете xs в конце вашей функции 'shuffle', а затем выполняете' t = shuffle (t, n) '? –
Почему он должен возвращать 'None'? (что, кстати, по умолчанию, когда вы опускаете оператор возврата) – StoryTeller
Я объяснил в комментарии к первому ответу. Спасибо за помощь – Findios