Форум сайта python.su
Привет.
Начал изучать пайтон несколько дней назад, родился вот такой глупый вопрос: а как динамически создать словари?
К примеру, имеется список вроде
list=
Требуется посоздавать словари с именами a,b,c, ну и потом распечатать их содержимое, просто чтобы проверить, создались они или нет.
Я пробовал набыдлокодить нечто вроде list={} для всех элементов массива, но так, разумеется, не работает. =)
Буду благодарен за ответы =)
Офлайн
yegorov-pТак делать нехорошо, так как list - это тип данных, который по умолчанию в твоей области видимости, при попытке дальше приводить, скажем, множества к спискам,
list=
>>> list = 1
>>> x = set([1,2,3])
>>> list(x)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>>
>>> lst = ['a','b','c']
>>> d_list = {}
>>> for d_name in lst: d_list.update({d_name:{}})
...
>>> d_list
{'a': {}, 'c': {}, 'b': {}}
>>> d_list['a']
{}
>>>
Отредактировано (Окт. 16, 2009 23:29:47)
Офлайн
regallДа, что-то вроде этого и нужно было. Только сразу возник следущий вопрос: а как добавить несколько элементов во “вложенные” словари?
Я чего-то не сильно вник в суть задачи, но походу имеется в виду это:И не надо создавать кучу именованных переменных, эта тема неоднократно обсуждалась, советую поискать по форуму по словам ‘exec’, ‘eval’.>>> lst = ['a','b','c']
>>> d_list = {}
>>> for d_name in lst: d_list.update({d_name:{}})
...
>>> d_list
{'a': {}, 'c': {}, 'b': {}}
>>> d_list['a']
{}
>>>
Офлайн
d.update({key1:value1, key2:value2, key3:value3, ... })
Офлайн
regallНет, не в этом смысле. =)d.update({key1:value1, key2:value2, key3:value3, ... })
Офлайн
Вопрос исчерпан:
dct='a2'
Офлайн