Python基础---容器字典Dict

 字典Dict(无序集合)python

定义:一系列键值对元素组成的集合函数

     使用 {} 来表示
spa

   字典不关心键值对的排列顺序,只关心键和值之间的关联关系code

   PS:在Python3.6中,重写了字典,如今是有序的了对象

       https://stackoverflow.com/questions/39980323/are-dictionaries-ordered-in-python-3-6blog

建立字典:ci

  一、空字典: dict = {}字符串

  二、带数据的字典:dict = {key1 : value1, key2 : value2, ...}get

     其中:key值具备惟一性,且不可变(可以使用 字符串string,数字int,元组tuple等)string

        value值能够是Python中的任何对象,好比(int, string, list, dict等)

字典操做:

  一、访问:

   dict[key]

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 result = var['c']
3 print(result)
4 --->Callie

 

  二、删除:

     del dict/dict[key] 删除字典或key对应的value

   clear()           清空字典,获得一个空字典

   pop(key)     删除字典中制定的元素

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 var.pop('a')
3 print(var)
4 --->{'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}

   popitem()      随机返回并删除字典中的一对键和值(通常删除末尾对)

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 var.popitem()
3 print(var)
4 --->{'a': 'Alan', 'b': 'Brain', 'c': 'Callie'}

  三、添加 & 修改:

    dict[key] = value

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 var['a'] = 'Ab'
3 print(var)
4 --->{'a': 'Ab', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
5 
6 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
7 var['e'] = 'Ed'
8 print(var)
9 --->{'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny', 'e': 'Ed'}

 

字典方法:

 

  一、len(dict)

  二、max(dict) & min(dict)  最大值和最小值,返回结果是字典的key;

                   若是key不是数字类型,则根据Ascii值比较

  三、和List,Tuple同样,一样具备推导式

字典的遍历:

  一、for key,value in dict.items()  遍历字典的键和值

      items()将字典转换为一个2级List容器,可是该List不是标准的列表类型

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 for key, value in var.items():
3     print(key + '-' + value)
4 --->a-Alan
5 --->b-Brain
6 --->c-Callie
7 --->d-Danny

  二、for key in dict.keys()  遍历字典的键,

                固然,不调用keys()方法,会默认遍历全部的键

                等价于 for key in dict

   三、for key in dict.values()   遍历字典的值

 

字典相关函数:

  一、clear()  清空

  二、copy()  复制

  三、fromkeys(seq, value)  

    建立一个新字典,以列表元素为键,value为对应的初始值

1 num = [1, 2, 3, 4, 5]
2 var = dict.fromkeys(num, 'Hello')
3 print(var)
4 {1: 'Hello', 2: 'Hello', 3: 'Hello', 4: 'Hello', 5: 'Hello'}

 

  四、get(key, default=None) 

    根据key获得对应的值,若是key不在字典中,返回默认值

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 print(var.get('a'))
3 --->Alan
4 print(var.get('e', 'Rrror'))
5 --->Rrror

  五、setdefault(key, default=None)  与get()相似;

      若是字典中key值存在,则返回该key对应的value

      若是key值不存在,则添加以key为键,default为值的键值对,并返回该键值对

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 new = var.setdefault('a', 'Wood')
3 new1 = var.setdefault('w', 'Wood')
4 print(new)
5 --->Alan
6 print(new1)
7 --->Wood

  六、update()  更新修改dict中的元素

           若是key值不存在,则会进行添加

           dict.update(key = value)

         or dict.update({key : value})  通常习惯使用导入字典

1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'}
2 var.update({'e': 'Elbert'})
3 var.update({'a': 'Abc'})
4 print(var)
5 --->{'a': 'Abc', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny', 'e': 'Elbert'}

嵌套:

  在开头的建立描述中,字典的值能够是List,Tuple甚至是Dict

1 city = {'河南': {
2                 '二线': '郑州',
3                 '三线': ['洛阳', '南阳'],
4                 '四线': ('开封', '许昌', '新乡')
5                 }
6         }