Цель вывести из списка 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)