在 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])
您可以在 python2.6 中使用显式set
和 a来完成结果generator
:
>>> set(x for x in mylist if mylist.count(x) >= 2)
set([20])
你使用的是什么版本的 Python?集合推导出现在 2.7.x+ 和 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])