可能重复:
How do I randomly select an item from a list using Python?
我有两个数组pool_list_X,pool_list_Y。两者都有一个numpy数组作为列表中的元素。 所以基本上
pool_list_x[0] = [1 2 3 4] # a multidimensional numpy array.
并且pool_list_x的每个元素在pool_list_y
中都有对应的元素which is to say, that pool_list_x[i] corresponds to pool_list_y[i]
现在。如果我必须从list_x中随机选择10个元素(因此相应的元素为list_y)。我该怎么做呢。 我可以想到一种非常天真的方式......随机生成数字。和东西..但这不是很有效..什么是pythonic方式来做到这一点。 感谢
答案 0 :(得分:24)
不确定我是否理解百分之百,但我认为使用zip
和random.sample
可能会有效:
import random
random.sample(zip(list_a,list_b), 10)
一些简短的解释:
zip
会创建一个对列表,即它确保您选择相应的元素 - 如果您选择一个,则自动获取另一个(Zip([1,2,3],[4,5,6]) = [(1,4),(2,5),(3,6)]
)random.sample(l,n)
从列表n
l
个元素
答案 1 :(得分:4)
有一个函数允许你获取给定序列的随机元素:
import random
my_choice = random.choice(my_sequence)
有关详细信息,请参阅the documentation。