2014-01-25 2 views
7

두 개의 엘리먼트가 포함 된 튜플로 튜플 세트를 만드는 방법은 무엇입니까? 나는 숫자 1 (50)을 통해이 (x,y) , 나는파이썬에서 튜플 세트를 만드는 방법

시도 50

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

을 통해 50도 1 y을 통해 모든 값 1-x을 할당 할 각 튜플은 xy 값을가집니다

positive = set(tuple(x,y) for x in range(1,51) for y in range(1,51)) 

하지만 터플은 하나의 매개 변수 만 사용한다는 오류 메시지가 표시됩니다. 튜플 목록을 설정하려면 무엇을해야합니까?

+3

변화'튜플 (X, Y)는 '에'(X, Y)은'였으니 –

+0

은'tuple' 튜플에 다른 반복 가능 객체 (예를 들어 '튜플 변환 ([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 (범위 (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)} 
관련 문제