Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2014 20:53:42

heso
Зарегистрирован: 2013-11-10
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

объединение списков в словарь.

Предположим, существует пара списков(х и у - обычные числа, константы):

a = [x, 1, 2, 3]
b = [y, 4, 5, 6]

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

Сам пробовал использовать срезы, но всякий раз выдает ошибку.
P.s. Python 3.3

Отредактировано heso (Янв. 21, 2014 21:05:38)

Офлайн

#2 Янв. 21, 2014 21:50:10

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

объединение списков в словарь.

Ну а код ваш где, который ошибку выдает?

a = [1, 2, 6, 8]
b = [3, 6, 7, 9]
c = {}
for i in a, b:
    c[i[0]] = tuple(i[1:])
print(c)

Офлайн

#3 Янв. 21, 2014 23:00:03

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

объединение списков в словарь.

Надо показывать код и ошибку, что бы другие могли вам помочь с вашим кодом. Вот последовательное решение вашей задачи.

>>> 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]}



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Янв. 22, 2014 01:05:46

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2693
Репутация: +  182  -
Профиль   Отправить e-mail  

объединение списков в словарь.

c={a[0]:tuple(a[1:]),b[0]:tuple(b[1:])}



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Янв. 22, 2014 01:08:27)

Офлайн

#5 Янв. 22, 2014 07:58:32

heso
Зарегистрирован: 2013-11-10
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

объединение списков в словарь.

Пытался так делать:

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'
Спасибо за советы, теперь все в норме.

Офлайн

#6 Янв. 22, 2014 08:07:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

объединение списков в словарь.

heso
Пытался так делать:
Почти угадал
a = [2222, 1, 2, 3]
b = [3333, 4, 5, 6]
c=dict([(a[0], a[1:]), (b[0], b[1:])])
print c



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version