Я создал Python script с Python2.7, и он отлично работает. Однако, когда я запускаю тот же script с Python2.6, я получил ошибку "Синтаксис: недействительный синтаксис".
После исследования проблема, похоже, связана с циклом for.
l1 = [["a1", "a2"], ["b1", "b2"]]
print {item[0]:item[1] for item in l1}
Когда я запускаю вышеуказанный код с Python 2.7, у меня есть следующий вывод:
{'a1': 'a2', 'b1': 'b2'}
Когда я запускаю тот же код с Python 2.6, у меня есть следующая ошибка:
>>> l1 = [["a1", "a2"], ["b1", "b2"]]
>>> print {item[0]:item[1] for item in l1}
File "<stdin>", line 1
print {item[0]:item[1] for item in l1}
^
SyntaxError: invalid syntax
>>>
Любая помощь приветствуется.
С уважением,
Аллен
Попробуйте следующее:
print dict(item for item in l1)
Изменить комментарий: Если вы хотите явно выбрать элементы, оберните их в кортеж:
print dict((item[1], item[4]) for item in l1)
Словарь в Python 2.6 недоступен. См. Space_C0wb0y ответ о том, как обойти это в коде.
попробуйте следующее:
print dict([tuple(i) for i in l1])