Ошибка создания словаря Python

Мы используем ILMerge на блоках приложений Microsoft - вместо 12 отдельных файлов DLL, у нас есть единственный файл, который мы можем загрузить на наши клиентские области, плюс структура файловой системы намного более опрятно.

После слияния файлов, я должен был отредактировать список проекта Visual Studio, удалить 12 отдельных assmeblies и добавить единственный файл как ссылку, иначе это будет жаловаться, что не могло найти определенный блок. Я не слишком уверен, как это работало бы над развертыванием сообщения, хотя, могло стоить дать ему попытку.

5
задан Kevin Guan 5 November 2015 в 03:22
поделиться

1 ответ

You're doing it wrong.

The dict() constructor doesn't take a list of items (much less a list containing a single list of items), it takes an iterable of 2-element iterables. So if you changed your code to be:

myList = []
myList.append(["mykey1", "myvalue1"])
myList.append(["mykey2", "myvalue2"])
myDict = dict(myList)

Then you would get what you expect:

>>> myDict
{'mykey2': 'myvalue2', 'mykey1': 'myvalue1'}

The reason that this works:

myDict = dict([['prop1', 'prop2']])
{'prop1': 'prop2'}

Is because it's interpreting it as a list which contains one element which is a list which contains two elements.

Essentially, the dict constructor takes its first argument and executes code similar to this:

for key, value in myList:
    print key, "=", value
13
ответ дан 18 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: