我有号码列表:
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)
但这返回一个生成器对象而不是整数。有没有办法来解决这个问题?
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需要一个序列,而生成器则不需要。