Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字典-列表嵌套_Python_List_Dictionary - Fatal编程技术网

Python字典-列表嵌套

Python字典-列表嵌套,python,list,dictionary,Python,List,Dictionary,我有一个带有一个键和一对值的字典,这些值存储在一个列表中。但是我保持列表为空,这样我就可以添加它的值,我似乎不能这样做 >>>myDict = {'Numbers':[]} >>>myDict['Numbers'[1].append(user_inputs) 似乎不起作用,返回一个错误。如何引用myDict中的列表,以便附加其值 还有可能在一个列表中有一本词典,也可能在列表中有另一个列表吗?若有??它的语法是什么?或者你能推荐我做这件事的其他方法吗 >

我有一个带有一个键和一对值的字典,这些值存储在一个列表中。但是我保持列表为空,这样我就可以添加它的值,我似乎不能这样做

>>>myDict = {'Numbers':[]}
>>>myDict['Numbers'[1].append(user_inputs) 
似乎不起作用,返回一个错误。如何引用myDict中的列表,以便附加其值

还有可能在一个列表中有一本词典,也可能在列表中有另一个列表吗?若有??它的语法是什么?或者你能推荐我做这件事的其他方法吗

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

我是否将第二个嵌套列表更改为元组??请将其保留在Python2.7中,因为语法错误,所以会出现错误。以下内容附加到
'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']
[]

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

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

你可以在一个列表中包含dicts


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

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

此外,您可能还对该类的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)

我想你正在学习python。如果你学习Python3是最好的,它有无数的改进,你会遇到更少的问题。是的,但我建议我使用2.7,因为它是“唯一稳定的版本”,正如我5年前听说的那样。现在python 3是首选版本。既然你说了5年,我想我必须改变。谢谢你的回答,这很有帮助。但是我只是想知道是否有一种方法可以将原始输入循环多次。我不想像我的字典所要求的那样将每个原始输入定义50次。我曾考虑使用for循环,但我对python完全陌生,它与python有点不同java@DamilolaLucasAromiwe:您可以为范围(50)内的计数器使用
进行循环:
例如;一般来说,Python语言比Java语言更简单。你从第三行开始就不再说英语了。idx是一个占位符,像某种列表或python语句吗?idx是索引的缩写。python中的函数允许您迭代某些内容(例如,某些_列表),并返回“count”/index和实际值。