我有一個程序可以生成一個二維列表,其中包含一定數量的二維座標在一定範圍內的二維列表。 (這並不重要,如果嵌套的列表或元組),例如:隨機,非重複2D列表Python
[[5, 0], [4, 6], [9, 7], [2, 9], [2, 6]]
的問題是,我想對於任何兩個子列表相等,同時保持外列表相同的長度。
我已經使用random.sample嘗試:
pointx = random.sample(range(10),5)
pointy = random.sample(range(20),5)
points = list(zip(pointx,pointy))
其中10是x的範圍,20是y範圍和5是分的量:
[(1,0),(9,19),(8,13),(3,5),(0,14)]
然而,該方法的最大由於單獨的樣本列表,點數只有10 + 20,因此顯然應該是10 * 20。
雖然寫這個,我已經意識到:
point2D = []
point1D = random.sample(range(10*20),5)
[point2D.append(divmod(i,10)) for i in point1D]
這是一個可行的辦法,但也笨拙,我想知道是否有更好的解決可能涉及numpy的。
在此先感謝。
上述方法的最大點數是155而不是200或30.對於第一個'x'有20個可能的'y's,那麼對於第二個'x'有'19''' y等等,直到你得到20 + 19 + ... + 11 = 155'。 –
那麼,這兩種解決方案都適合你嗎? – Divakar