Просто:
>>> a = [["Hello", "Bye"], ["Morning", "Night"], ["Cat", "Dog"]]
>>> dict(a)
{'Cat': 'Dog', 'Hello': 'Bye', 'Morning': 'Night'}
Я люблю простоту питона
Вы можете увидеть here для всех способы построения словаря:
To illustrate, the following examples all return a dictionary equal to {"one": 1, "two": 2, "three": 3}
:
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)]) #<-Your case(Key/value pairs)
>>> e = dict({'three': 3, 'one': 1, 'two': 2})
>>> a == b == c == d == e
True
Вы хотите '[ 'Hello', 'Bye'] 'быть ключ для' [ 'Утро', 'Night']'? Потому что это то, что ваш код пытается сделать, если бы не тот факт, что списки не могут быть ключами. –
@MartijnPieters Возможно, OP пытается разбить список на ключи и значения, однако OP может подумать, что он может рассматривать его как список строк без учета подписок. Вот почему он попробовал '[0 :: 2]' и '[1 :: 2]' – jamylak
@jamylak: я * думаю * Ответ Хайдро спот-на, но я просто уверен, что OP, возможно, не захотел для выполнения кода примера, если бы это было не для изменяемых ключей. В этом случае 'dict (zip (map (tuple, a [0 :: 2]), a [1 :: 2]))' будет делать то, что хочет OP. –