Цель вывести из списка 3 случайных числа без повторений. Пишет ошибку. В чем проблема?


a =  [1,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,1,1,0,0,1,0,1,1,0,1,0,0,1,1,1,0,0,1,0,1,0,0,1,0,0,0,1,0]
b = int(input('Сколько чисел '))
import random
a = random.shuffle(a)
qwe = len(str(a))
print(qwe)
c = 0
while qwe > 0 :
    c = a[1:b]
    del a[1:b]
    qwe -= 1
    print(c)

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

Автор решения: CrazyElf
a = random.shuffle(a)

Смотрим описание функции random.shuffle:

Shuffle list x in place, and return None.

Не нужно присваивать результат работы этой функции обратно в список, список и без этого будет отсортирован "на месте", а вот в результате такого присваивания в переменной a окажется None и именно из-за этого дальше по коду возникнет ошибка:

TypeError: 'NoneType' object is not subscriptable

Что вы делаете в вашем коде дальше я не очень понимаю, но ошибка у вас возникает из-за вышеописанной ситуации. Нужно вызывать shuffle без присваивания обратно в переменную:

random.shuffle(a)
→ Ссылка