Почему это установленное понимание не работает?
В 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
$ 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])
Ответ 2
Какую версию 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])