Вы делаете это неправильно.
Конструктор dict()
не принимает список элементов (тем более, список, содержащий один список элементов), он принимает итерацию из 2-элементных итераций. Так что если вы изменили свой код на:
myList = []
myList.append(["mykey1", "myvalue1"])
myList.append(["mykey2", "myvalue2"])
myDict = dict(myList)
Тогда вы получите то, что ожидаете:
>>> myDict
{'mykey2': 'myvalue2', 'mykey1': 'myvalue1'}
Причина, по которой это работает:
myDict = dict([['prop1', 'prop2']])
{'prop1': 'prop2'}
Это потому, что он интерпретирует его как список, который содержит один элемент, который является списком, который содержит два элемента.
По сути, конструктор dict
принимает свой первый аргумент и выполняет код, подобный следующему:
for key, value in myList:
print key, "=", value