从列表或元组列表中选择随机对象的哪种方法更有效?

G M*_*G M 5 python random performance numpy

我有一个这个结构的2d坐标列表:

coo = [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0)]
Run Code Online (Sandbox Code Playgroud)

coo[0]存储在元组中的第一个坐标在哪里.

我想选择两个不同的随机坐标.我当然可以使用这种方法:

import numpy  as np
rndcoo1 = coo[np.random.randint(0,len(coo))]
rndcoo2 = coo[np.random.randint(0,len(coo))]
if rndcoo1 != rndcoo2:
     #do something
Run Code Online (Sandbox Code Playgroud)

但是因为我必须重复这个操作1'000'000次,我想知道是否有更快的方法来做到这一点.np.random.choice()不能用于2d阵列有没有我可以使用的替代方案?

fre*_*ish 6

import random
result = random.sample(coo, 2)
Run Code Online (Sandbox Code Playgroud)

会给你预期的输出.而且(可能)和Python一样快.