Немогу понять почему возвращаются не перемешанные списки, а три None

Вот код

from random import shuffle

lst_in = ['1 2 3 4', '5 6 7 8', '9 8 6 7']
lst_in = [shuffle(i.split()) for i in lst_in]

Ответы (1 шт):

Автор решения: denisnumb

Потому что функция shuffle ничего не возвращает. Она только изменяет переданный ей список, т.к. список — ссылочный тип данных

Так что для получения ожидаемого результата, вам просто не нужно перезаписывать список в переменную lst_in.

Вот так:

from random import shuffle

lst_in = [i.split() for i in ['1 2 3 4', '5 6 7 8', '9 8 6 7']]

for i in lst_in:
    shuffle(i)

Или также, через генератор, но без записи в переменную

[shuffle(i) for i in lst_in]
→ Ссылка