2016-02-23 1 views
0

Я совершенно озадачен следующим. Я хочу создать словарь, который отображает имена идентификаторов для элементов списка:python dict понимание работает локально, но не на сервере - версия вопроса

itemsKeyedById = {i["id"]: i for i in myList} 

и она работает нормально, когда выполняется на моем компьютере. MyList является списком, созданным с помощью последовательности команд, как:

myList.append({'name': 'entry_name_string', 'id': 'some_id'}) 

Когда я загрузить его на сервер, скрипт просто «зависает» на этой линии.

Версия python У меня локально есть Python 2.7.10, а на сервере у меня 2.6.6. Возможно, это проблема с версией, но я совершенно новый для python и никогда не был запрограммирован в 2.6.6. Любое предложение будет оценено по достоинству.

Спасибо всем :-)

+1

Чтобы было ясно, что вы делаете в этой первой строке, это понимание 'dict', а не понимание' list'. Имя основано на типе результата (в данном случае 'dict'), а не на входе (потому что любое понимание может« понимать »любой конечный итерируемый ввод, результат - то, что известно, вход произвольный). – ShadowRanger

+0

Спасибо, это действительно делает его более понятным для меня. У меня есть еще одна проблема, аналогичная строка кода dosn't работает в версии 2.7, вы тоже могли бы помочь в этом: 'topLevelItems = [item для элемента в myList, если« parent »не в элементе]' –

+0

Нет ничего об этом сама строка, которая должна вызывать ошибку, но не задавать новые вопросы в комментариях другого; опубликуйте новый вопрос. – chepner

ответ

4

2,6 не ДИКТ изменения понимания его

itemsKeyedById = dict((i["id"], i) for i in myList) 

AFAIK это также не установило понимание, ни установить литералы (не имеющие отношения к вашему вопросу, но другие в структуру данных 2.7, что не в 2.6) ... вам действительно нужно сделать set([1,2,3])

+1

это не сосать, просто развивается язык ... к тому времени, когда python4 приходит вокруг, люди скажут то же самое о 3 ... что у вас есть особые случаи для пары данных, на самом деле это не сильно влияет на вашу производительность, вы все равно имеют большинство преимуществ, которые приходят от использования python. –

+0

Это было очень быстро и точно! спасибо –