我的输入点列表为:
input_points = [{'name': 'a', 'value': (0.0, 1.0)}, {'name': 'b', 'value': (2.0, 1.0)},
{'name': 'c', 'value': (3.0, 1.0)}, {'name': 'd', 'value': (0.0, 3.0)},
{'name': 'e', 'value': (1.0, 2.0)}, {'name': 'f', 'value': (1.5, 1.5)},
{'name': 'g', 'value': (1.0, 1.0)}, {'name': 'h', 'value': (1.5, 2.0)}]
我必须迭代生成两个随机点。我正在使用random.sample()作为:
for x in range(100):
point1 = random.sample(input_points, 2)
print(point1)
但是它为我提供了重复点的组合,这就是为什么我一直没有在100次迭代中从列表中得到所有点的组合的原因。但是我只需要遍历100次迭代中的所有点。有什么办法可以消除重复项,即我可以在100次迭代中得到所有点的组合。
谢谢
您可以在while
循环内使用for
循环,以确保之前没有记录每次迭代的随机选择:
import random
result = []
for _ in range(100):
_r = random.sample(input_points, 2)
while any(i in result for i in _r):
_r = random.sample(input_points, 2)
result.extend(_r)