Python基础---容器字典Dict
字典Dict(无序集合)
定义:一系列键值对元素组成的集合
使用 {} 来表示
字典不关心键值对的排列顺序,只关心键和值之间的关联关系
PS:在Python3.6中,重写了字典,现在是有序的了
https://stackoverflow.com/questions/39980323/are-dictionaries-ordered-in-python-3-6
创建字典:
1、空字典: dict = {}
2、带数据的字典:dict = {key1 : value1, key2 : value2, ...}
其中:key值具有唯一性,且不可变(可使用 字符串string,数字int,元组tuple等)
value值可以是Python中的任何对象,比如(int, string, list, dict等)
字典操作:
1、访问:
dict[key]
1 var = {'a': 'Alan', 'b': 'Brain', 'c': 'Callie', 'd': 'Danny'} 2 result = var['c'] 3 print(result) 4 --->Callie
2、删除:
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'}
3、添加 & 修改:
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'}
字典方法:
1、len(dict)
2、max(dict) & min(dict) 最大值和最小值,返回结果是字典的key;
如果key不是数字类型,则根据Ascii值比较
3、和List,Tuple一样,同样具有推导式
字典的遍历:
1、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
2、for key in dict.keys() 遍历字典的键,
当然,不调用keys()方法,会默认遍历所有的键
等价于 for key in dict
3、for key in dict.values() 遍历字典的值
字典相关函数:
1、clear() 清空
2、copy() 复制
3、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'}
4、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
5、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
6、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 }