从列表中获取不等于特定数字的随机值?

Lya*_*yam -1 python integer

我有号码列表:

list = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

并希望从上面的列表中获取一个不等于 x 的随机整数 k

我试过了:

x = 2
k = (i for i in array if i !=x)
Run Code Online (Sandbox Code Playgroud)

但这返回一个生成器对象而不是整数。有没有办法来解决这个问题?

Ale*_*all 5

import random

k = random.choice([i for i in array if i != x])
Run Code Online (Sandbox Code Playgroud)

请注意,[]在这种情况下是必需的,如下所示:

random.choice(i for i in array if i != x)
Run Code Online (Sandbox Code Playgroud)

这相当于

gen = (i for i in array if i != x)
random.choice(gen)
Run Code Online (Sandbox Code Playgroud)

不起作用,因为choice需要一个序列,而生成器则不需要。