Python - простой вопрос синтаксиса - PullRequest
1 голос
/ 05 июля 2011

Я получаю ошибку синтаксиса Python для следующей строки кода:

orientations = [[(ants[0].loc, 0, {i: i for i in range(self.num_players)})]]
                                          ^

Это из чужого скрипта, который, я уверен, должен работать, поэтому я подозреваю, что проблема может быть вверсию python я использую?Я использую Python 2.6.6.

Ответы [ 3 ]

3 голосов
/ 05 июля 2011

Как уже говорили другие, вы должны использовать Python 2.7, если вы хотите, чтобы этот синтаксис работал.

В качестве альтернативы вы можете использовать кортежи для инициализации словаря:

[[(ants[0].loc, 0, dict((i, i) for i in range(self.num_players)))]]

Но можетбыть другими частями кода, которые также должны быть изменены.Возможно, будет проще перейти на Python 2.7, особенно если вы работаете вместе с кем-то, кто использует эту версию.

2 голосов
/ 05 июля 2011
{i: i for i in range(self.num_players)}

в Python 2.5.2 это:

dict( (i,i) for i in range(self.num_players) )
0 голосов
/ 05 июля 2011

Вы, наверное, правы.Кажется, работает для меня с Python 2.7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...