Как выбрать случайный элемент из списка с исключением python
Всем привет есть такой код
mas = [sa, as, qw, re, bew, uf, yt]
lv1 = random.choice(mas)
lv2 = random.choice(mas) #lv2 не должно быть равно lv1
как сделать чтобы элемент выбирался с исключением
Ответы (2 шт):
Автор решения: 4500zenja
→ Ссылка
Тут есть несколько вариантов, можете выбирать какой удобно:
- Удаляем из исходного списка выбранный ранее элемент при помощи
remove():
mas = [sa, as, qw, re, bew, uf, yt]
lv1 = random.choice(mas)
mas.remove(lv1) # убираем из mas элемент, уже выбранный и помещённый в lv1
lv2 = random.choice(mas) # выборка из всех элементов, кроме lv1
- Создаём новый список, в который помещаем все элементы, кроме выбранного (положим, что все элементы уникальны) — это называется созданием списка через генератор:
mas = [sa, as, qw, re, bew, uf, yt]
lv1 = random.choice(mas)
mas1 = [elem for elem in mas if elem != lv1] # в новый список помещаем такие elem из старого списка,
# которые не равны lv1
lv2 = random.choice(mas1) # выборка из нового списка mas1
Автор решения: Be3y4uu_K0T
→ Ссылка
Первый вариант: Брать случайный индекс и "pop" нужный элемент.
>>> import random
>>> array = [10, 11, 12, 13, 14, 15, 16]
>>> array.pop(random.randrange(len(array)))
15
>>> array.pop(random.randrange(len(array)))
13
>>> array
[10, 11, 12, 14, 16]
>>>
Второй вариант: Перемешать список, и потом брать по порядку элементы. Или же по индексу.
>>> import random
>>> array = [10, 11, 12, 13, 14, 15, 16]
>>> random.shuffle(array)
>>> for element in array:
... print(element)
...
13
16
12
11
15
14
10
>>> element1 = array[0]
>>> element2 = array[1]