python字典列表和列表字典
本人python新手想问下:a=[]b={'name':'fokil'}a.append(b.copy())和a={'name':[]}a['name'].append(...
本人python新手想问下:
a=[]
b={'name':'fokil'}
a.append(b.copy())
和
a={'name':[]}
a['name'].append('fokil')
这两种方式的不同和各自的适用范围,举例说明
我知道两种的不同但不懂的怎么用语言表达,另外不太清楚它们的适用面,本话题纯技术讨论 展开
a=[]
b={'name':'fokil'}
a.append(b.copy())
和
a={'name':[]}
a['name'].append('fokil')
这两种方式的不同和各自的适用范围,举例说明
我知道两种的不同但不懂的怎么用语言表达,另外不太清楚它们的适用面,本话题纯技术讨论 展开
展开全部
最本质的区别:第一种方法得出的a是列表,而第二种的a是字典
用python语句表达来看就是:
1.type(a) == list
2.type(a) == dict
在交互式界面下显示:
第一种:
>>> a
[{'name':'fokil'}]
此时a是一个列表,他具有列表的一切方法和属性,但不具备任何字典的方法和属性。列表可以有N个元素,元素的类型是任意的,与列表本身无关。而此时的a有一个元素,该元素是一个字典——但这并不代表整个列表a带有任何字典的性质。明白?
第二种:
>>> a
{'name':['fokil']}
同上,此时a是一个字典,具有字典的一切方法和属性,但不具备任何列表的方法和属性。字典可以有N个元素,每个元素由一对key和内容的组合构成。key可以是任何单一对象的类型(不能是列表或字典——但可以是元组。当然,还可以是数字、字符/字符串,甚至是文件对象),而key对应的内容则可以是任意类型的。在此时,a中只有一个元素,key是一个字符串,而内容则是一个含有一个字符串元素的列表——同样,这不意味着a具有任何的列表性质
总而言之,严格的讲:没有“字典列表”或“列表字典”这种概念
只有一个列表,他包含的元素的类型是字典——当然,列表中的元素可以是不同类型的,譬如:
a = [1, 'test', [2,3,4], {'name':'fokil'}]
同理,只有一个字典,他包含的元素中的一部分是列表(当然,key部分不可能是列表)。当然,也有可能是不同类型的元素:
a = {1:'b',(1,2,3):[4,5,6],'test':{'test2':['test3']}}
用python语句表达来看就是:
1.type(a) == list
2.type(a) == dict
在交互式界面下显示:
第一种:
>>> a
[{'name':'fokil'}]
此时a是一个列表,他具有列表的一切方法和属性,但不具备任何字典的方法和属性。列表可以有N个元素,元素的类型是任意的,与列表本身无关。而此时的a有一个元素,该元素是一个字典——但这并不代表整个列表a带有任何字典的性质。明白?
第二种:
>>> a
{'name':['fokil']}
同上,此时a是一个字典,具有字典的一切方法和属性,但不具备任何列表的方法和属性。字典可以有N个元素,每个元素由一对key和内容的组合构成。key可以是任何单一对象的类型(不能是列表或字典——但可以是元组。当然,还可以是数字、字符/字符串,甚至是文件对象),而key对应的内容则可以是任意类型的。在此时,a中只有一个元素,key是一个字符串,而内容则是一个含有一个字符串元素的列表——同样,这不意味着a具有任何的列表性质
总而言之,严格的讲:没有“字典列表”或“列表字典”这种概念
只有一个列表,他包含的元素的类型是字典——当然,列表中的元素可以是不同类型的,譬如:
a = [1, 'test', [2,3,4], {'name':'fokil'}]
同理,只有一个字典,他包含的元素中的一部分是列表(当然,key部分不可能是列表)。当然,也有可能是不同类型的元素:
a = {1:'b',(1,2,3):[4,5,6],'test':{'test2':['test3']}}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询