字典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 }