在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
謝謝。
在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
謝謝。
$ 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])
你可以使用一個明確的set
和generator
完成在python2.6的結果:
>>> set(x for x in mylist if mylist.count(x) >= 2)
set([20])
2.7中的新增功能:設置字面值('{1,2,3,4,5} == set([1,2,3,4,5])) – 2012-07-15 00:43:28
你使用的是什麼版本的Python?設置解析appeared in 2.7.x+ and 3.x+。如果您使用的是舊版本,你會得到一個SyntaxError: invalid syntax
:
>>> {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
這是不是與Python 2.7.x的情況下+/3.X +:
>>> {x for x in mylist if mylist.count(x) >= 2}
set([20])
對我的作品有V2.7.2,我得到了'set( [20])' – Levon 2012-07-15 00:31:40
什麼「不起作用」呢? – kindall 2012-07-15 00:33:01
http://docs.python.org/dev/whatsnew/2.7.html#python-3-1-features – jdi 2012-07-15 00:33:46