Получить случайное значение из списка, который не равен конкретному числу? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть список чисел:

list = [1,2,3]

и я хотел бы получить случайное целое число k, которое не равно x из приведенного выше списка

Я пробовал:

x = 2
k = (i for i in array if i !=x)

, но это возвращает объект генератора вместо целого числа.Есть ли способ это исправить?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вам просто нужно использовать квадратные скобки в вашем понимании списка!Затем вы можете получить первое значение с помощью [0].

например

array = [1,2,3]
x = 2
k = [i for i in array if i !=x][0]
0 голосов
/ 23 мая 2018
import random

k = random.choice([i for i in array if i != x])

Обратите внимание, что в этом случае требуется [], так как:

random.choice(i for i in array if i != x)

, что эквивалентно

gen = (i for i in array if i != x)
random.choice(gen)

, не работает с choiceтребуется последовательность, которой не является генератор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...