2014-01-25 75 views
7

我如何創建一個包含兩個元素的每個元組的元組集合?每個元組將有一個xy值:(x,y) 我有1到50的數字,並希望通過50在python中創建元組集合

S = {(1,1),(1,2),(1,3),(1,4)...(1,50),(2,1)......(50,50)} 

我試圖

通過50 y也1分配 x所有值1
positive = set(tuple(x,y) for x in range(1,51) for y in range(1,51)) 

但錯誤消息說,一個元組只接受一個參數。我需要做什麼來設置元組列表?

+3

變化'元組(X,Y)''向(X,Y)' –

+0

..because'tuple'轉換其他iterables成元組(例如元組' ([1,2]) - >'(1,2)'),所以它只需要一個參數。 –

回答

11
mySet = set(itertools.product(range(1,51), repeat=2)) 

OR

mySet = set((x,y) for x in range(1,51) for y in range(1,51)) 
+3

'itertools.product(range(1,51))'達到50,對不對? –

+0

@ZacharyYoung:很好,謝謝。你是對的。固定! – inspectorG4dget

1

tuple只接受一個參數。只需使用圓括號在元組中明確寫入。

#     vvvvv 
>>> positive = set((x,y) for x in range(1,5) for y in range(1,5)) 
>>> positive 
{(1, 2), (3, 2), (1, 3), (3, 3), (4, 1), (3, 1), (4, 4), (2, 1), (2, 4), (2, 3), (1, 4), (4, 3), (2, 2), (4, 2), (3, 4), (1, 1)}