我有数字列表:
list = [1,2,3]
并希望得到一个随机整数k,它不等于上面列表中的x
我试过了:
x = 2
k = (i for i in array if i !=x)
但是返回生成器对象而不是整数。有办法解决这个问题吗?
答案 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]