如何从列表中随机分配元素到坐标?

时间:2015-02-02 22:24:45

标签: python

Sumlist = ['9', '2', '7', '1', '5', '3', '4', '6', '8', '$', '$', '$', '$', '$', 'K', 'I', 'Q', 'J', 'T', 'V', 'D', 'B', 'R', 'Y', 'L', 'Z', 'U', 'P', 'A', 'W', 'C', 'O', 'G', 'M', 'H', 'S', 'N', 'E', 'X', 'F']

让我们说一些坐标,例如:

gridxy = [1,2] [1,3] [1,4] [2,2] [2,3] [2,4]

现在我的问题是:我如何通过python将我的Sumlist中的元素随机分配给我的每个坐标?我是否使用if和else语句?

我不认为我会在这个中使用元组。

1 个答案:

答案 0 :(得分:0)

您应该使用random模块随机sample您的Sumlist,并使用zip内置函数将每个元素与gridxy中的元素相关联:

Tested on Python 2.7.9

>>> import random
>>> Sumlist = ['9', '2', '7', '1', '5', '3', '4', '6', '8', '$', '$', '$', '$', '$', 'K', 'I', 'Q', 'J', 'T', 'V', 'D', 'B', 'R', 'Y', 'L', 'Z', 'U', 'P', 'A', 'W', 'C', 'O', 'G', 'M', 'H', 'S', 'N', 'E', 'X', 'F']
>>> gridxy = [[1,2],[1,3],[1,4],[2,2],[2,3],[2,4]]
>>> random.seed()
>>> zip(gridxy, random.sample(Sumlist, len(gridxy)))
[([1, 2], '$'), ([1, 3], '1'), ([1, 4], '6'), ([2, 2], 'X'), ([2, 3], '$'), ([2, 4], '$')]