2012-07-15 4 views
14

Python 2.6.5에서이 목록이 제공됨 mylist = [20, 30, 25, 20]왜 이것이 이해력을 설정하지 않습니까?

왜이 설정 이해가 작동하지 않습니까?

>>> {x for x in mylist if mylist.count(x) >= 2} 
    File "<stdin>", line 1 
    {x for x in mylist if mylist.count(x) >= 2} 
     ^
SyntaxError: invalid syntax 

감사합니다.

+1

작품을 나를 위해 2.7.2와 함께, 내가 설정'수 ([20])' – Levon

+1

그것에 대해 "효과가 없습니까?" – kindall

+1

http://docs.python.org/dev/whatsnew/2.7.html#python-3-1-features – jdi

답변

26
$ python2.6 
>>> mylist = [20, 30, 25, 20] 
>>> {x for x in mylist if mylist.count(x) >= 2} 
    File "<stdin>", line 1 
    {x for x in mylist if mylist.count(x) >= 2} 
     ^
SyntaxError: invalid syntax 

$ python2.7 
>>> mylist = [20, 30, 25, 20] 
>>> {x for x in mylist if mylist.count(x) >= 2} 
set([20]) 

당신이 이전 버전을 사용하는 경우, 당신은 SyntaxError: invalid syntax를 얻을 수 있습니다 명시 적 setgenerator를 사용 python2.6의 결과를 달성 :

>>> set(x for x in mylist if mylist.count(x) >= 2) 
set([20]) 
+2

2.7의 새로운 기능 : 세트 리터럴 ('{1, 2, 3, 4, 5} == set ([1, 2, 3, 4, 5])') –

8

어떤 Python 버전을 사용하고 있습니까? 이해 관계 설정 appeared in 2.7.x+ and 3.x+. 파이썬 2.7.x의 경우되지 않습니다

>>> {x for x in mylist if mylist.count(x) >= 2} 
    File "<stdin>", line 1 
    {x for x in mylist if mylist.count(x) >= 2} 
     ^
SyntaxError: invalid syntax 

+/3.x를 + : 당신이 할 수있는

>>> {x for x in mylist if mylist.count(x) >= 2} 
set([20]) 
관련 문제