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

时间:2018-05-23 20:14:10

标签: python integer

我有数字列表:

list = [1,2,3]

并希望得到一个随机整数k,它不等于上面列表中的x

我试过了:

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

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

2 个答案:

答案 0 :(得分:2)

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需要一个生成器不是的序列。

答案 1 :(得分:0)

你只需要在列表理解中使用方括号!然后你可以用[0]得到第一个值。

e.g。

array = [1,2,3]
x = 2
k = [i for i in array if i !=x][0]