2016-04-25 3 views
-1

У меня есть список с несколькими списками внутри него, как показано ниже:Как преобразовать список в словарь

x = [[1,2,3],[3,4,5],[6,7,8]] 

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

x = [(1:2,3), 
(3:4,5), 
(6:7,8)] 
+2

Я изменил «ужасный» ctory "to" dictionary ". Я верю, что это то, что вы имели в виду. * Однако *, ваш выход - это * не * словарь. Он выглядит как список кортежей (с недопустимым синтаксисом) – Andy

+0

Что должно быть 1: 2, 3: 4 и 6: 7? – user312016

ответ

3

Я хотел бы использовать словарь понимание:

{l[0]:l[1:] for l in x} 

Это петли через список а nd берет первый элемент каждого вложенного списка как ключ, а остальное - как значение.

0

Предполагая, что ваше описание словаря является правильным, и образец кода вы проявили выше неправилен:

x = [[1,2,3],[3,4,5],[6,7,8]] 
y = {} 
for i in x: 
    y[i[0]] = i[1:] 
print y 
# {1: [2, 3], 3: [4, 5], 6: [7, 8]} 

Если то, что вы хотите, был список кортежей:

tuple([tuple(i) for i in x]) 

Если это словарь, который вы хотели проверить на членство, и распечатать последний элемент

if 1 in y: 
    print y[1][-1:] 
else: 
    print 'Not Found' 
+0

спасибо за ответ он дал мне точный анс, который я хотел , но у меня есть еще одно условие в этом , если 1 в у, то он должен напечатать печать 3 означает 2-ое значение списка еще печатать не нашел хау для этого help plz –

+0

Вам будет полезно прочитать https://docs.python.org/2/tutorial/datastructures.html. Просто проверьте членство и распечатайте последний элемент? если 1 в у: печать у [1] [- 1:] еще: печать 'Not Found' – kanghj91

+0

@pradeeppawar, и если вы конкретно хотите, второй элемент, использовать у [1] [2] вместо у [1] [- 1]. Во всяком случае, я обновил ответ, чтобы включить этот дополнительный бит, который вы хотите – kanghj91

Смежные вопросы