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']}}