Найти - Пользователи
Полная версия: объединение списков в словарь.
Начало » Python для новичков » объединение списков в словарь.
1
heso
Предположим, существует пара списков(х и у - обычные числа, константы):
a = [x, 1, 2, 3]
b = [y, 4, 5, 6]

Возможно ли объединить их в один словарь вида:
с={x: (1, 2, 3), y: (4, 5, 6)}
?

Сам пробовал использовать срезы, но всякий раз выдает ошибку.
P.s. Python 3.3
dimy44
Ну а код ваш где, который ошибку выдает?
a = [1, 2, 6, 8]
b = [3, 6, 7, 9]
c = {}
for i in a, b:
    c[i[0]] = tuple(i[1:])
print(c)
JOHN_16
Надо показывать код и ошибку, что бы другие могли вам помочь с вашим кодом. Вот последовательное решение вашей задачи.
>>> x=1
>>> y=2
>>> a = [x, 1, 2, 3]
>>> b = [y, 4, 5, 6]
>>> l=[a,b]
>>>
>>> c={}
>>> for i in l:
...     c[i[0]]=i[1:]
...
>>> c
{1: [1, 2, 3], 2: [4, 5, 6]}
Rodegast
c={a[0]:tuple(a[1:]),b[0]:tuple(b[1:])}
heso
Пытался так делать:
a = [2222, 1, 2, 3]
b = [3333, 4, 5, 6]
c={}
c={(a[0],a[1:]),(b[0],b[1:])}
print(c)
Получал:
Traceback (most recent call last):
  File "D:\Dropbox\tests\test.py", line 4, in <module>
    c={(a[0],a[1:]),(b[0],b[1:])}
TypeError: unhashable type: 'list'
Спасибо за советы, теперь все в норме.
FishHook
heso
Пытался так делать:
Почти угадал
a = [2222, 1, 2, 3]
b = [3333, 4, 5, 6]
c=dict([(a[0], a[1:]), (b[0], b[1:])])
print c
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB