Как выбрать случайный элемент из списка с исключением python

Всем привет есть такой код

mas = [sa, as, qw, re, bew, uf, yt]
lv1 = random.choice(mas)
lv2 = random.choice(mas) #lv2 не должно быть равно lv1

как сделать чтобы элемент выбирался с исключением


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

Автор решения: 4500zenja

Тут есть несколько вариантов, можете выбирать какой удобно:

  1. Удаляем из исходного списка выбранный ранее элемент при помощи remove():
mas = [sa, as, qw, re, bew, uf, yt]
lv1 = random.choice(mas)
mas.remove(lv1)                      # убираем из mas элемент, уже выбранный и помещённый в lv1
lv2 = random.choice(mas)             # выборка из всех элементов, кроме lv1
  1. Создаём новый список, в который помещаем все элементы, кроме выбранного (положим, что все элементы уникальны) — это называется созданием списка через генератор:
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]
→ Ссылка