Python 为什么';这一套不管用吗?
在Python2.6.5中,给出以下列表 mylist=[20,30,25,20] 为什么这套理解不起作用Python 为什么';这一套不管用吗?,python,Python,在Python2.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 >>{x代表mylist中的
>>> {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
>>{x代表mylist中的x,如果mylist.count(x)>=2}
文件“”,第1行
如果mylist.count(x)>=2,则mylist中的x为{x}
^
SyntaxError:无效语法
谢谢。您使用的是什么版本的Python?设定理解。如果您使用的是旧版本,则会出现
语法错误:无效语法:
>>> {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
在v2.7.2中对我有效,我得到了关于它的set([20])
什么“不起作用”?在3.2中对我也有效,尽管我注意到{x代表x,在collections.Counter(mylist)中计数。如果计数>=2}
是O(n)而不是O(n^2)方法。啊。。我可以在Linux下用v2.6.5重现这个错误,所以我打赌您使用的是v2.7之前的版本。(我的错误消息包括另一行关于SyntaxError:invalid syntax
)也是2.7中新增的:set literal({1,2,3,4,5}==set([1,2,3,4,5])
)
>>> {x for x in mylist if mylist.count(x) >= 2}
set([20])
$ 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(x for x in mylist if mylist.count(x) >= 2)
set([20])