python字典列表和列表字典本人python新手想问下:a=[]b={'name':'fokil'}a.append(
1个回答

最本质的区别:第一种方法得出的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']}}