Python字典 - 列表嵌套

时间:2014-08-28 21:03:02

标签: python list dictionary

我有一个带有键和一对值的字典,这些值存储在List中。但我保持列表为空,所以我可以。看它的值,我似乎无法做到这一点

>>>myDict = {'Numbers':[]}
>>>myDict['Numbers'[1].append(user_inputs) 

似乎不起作用,返回错误。我如何引用myDict中的列表,以便我可以附加其值。

还有可能在列表中有一个字典,还有另一个列表吗?如果是这样?它的语法是什么,或者你能推荐我能做到的其他方式

>>>myDict2 = {'Names': [{'first name':[],'Second name':[]}]}

我将第二个嵌套列表更改为元组吗?请让它保持在PYTHON 2.7

3 个答案:

答案 0 :(得分:1)

您收到错误,因为您的语法错误。以下内容附加到'Numbers'键的列表值:

myDict['Numbers'].append(user_inputs)

您可以任意嵌套Python对象;您的myDict2语法完全正确。只有需要是不可变的(所以元组与列表相比),但你的键都是字符串:

>>> myDict2 = {'Names': [{'first name':[],'Second name':[]}]}
>>> myDict2['Names']
[{'first name': [], 'Second name': []}]
>>> myDict2['Names'][0]
{'first name': [], 'Second name': []}
>>> myDict2['Names'][0]['first name']
[]

答案 1 :(得分:0)

您应该使用myDict['Numbers']访问列表:

>>>myDict['Numbers'].append(user_inputs) 

您可以在列表中包含dicts。

唯一的问题是字典键必须是不可变的,因此您不能将字典或列表作为键。

答案 2 :(得分:0)

您可能需要查看json库,该库支持嵌套字典和列表的混合。

此外,您可能还对dictionary类的setdefault方法感兴趣。

格式如下:

new_dict = dict()
some_list = ['1', '2', '3', ...]
for idx, val in enumerate(some_list):
    something = get_something(idx)
    new_dict.setdefault(val, []).append(something)