python 字典创建、新增、修改、删除、遍历
字典介绍
Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!
字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串。列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的, 但值则不必。
字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,例如:d = {key1 : value1, key2 : value2 }
字典的创建
dict()函数是Python内置的创建字典的方法。
>>> test = {} >>> type(test) <class 'dict'> >>> a = {'a':'200','b':100} >>> a {'a': '200', 'b': 100} >>> dict([('a',1),('b',2)]) {'a': 1, 'b': 2} >>> dict(a=1,b=2,name='jack') {'a': 1, 'b': 2, 'name': 'jack'} >>> b = {1:100,2:200} # 常用的 >>> type(b) <class 'dict'> >>>
访问字典
字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与list类似,字典采用把相应的键放入方括号内获取对应值的方式取值。
>>> a = dict(a=1,b=2,name='jack') >>> a {'a': 1, 'b': 2, 'name': 'jack'} >>> a['a'] 1 >>> a['name'] 'jack' >>> b = {1:100,2:200} >>> b[1] 100 >>>
增加和修改
增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一-个
值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。
>>> b = {1:100,2:200} >>> b {1: 100, 2: 200} >>> b[3]=300 # 添加元素 3:300,键为3,值为300 >>> b {1: 100, 2: 200, 3: 300} >>> b['1']=500 # 添加元素 >>> b {1: 100, 2: 200, 3: 300, '1': 500} >>> b[1]=600 # 修改元素 >>> b {1: 600, 2: 200, 3: 300, '1': 500} >>>
删除字典元素、清空字典和删除字典
使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典
>>> b ={1: 600, 2: 200, 3: 300, '1': 500} >>> b {1: 600, 2: 200, 3: 300, '1': 500} >>> del b[1] # 删除字典元素 >>> b {2: 200, 3: 300, '1': 500} >>> b.pop(3) 300 >>> b {2: 200, '1': 500} >>> b.clear() # 清空字典 >>> b {} >>> del b # 删除字典 >>> b Traceback (most recent call last): File "<pyshell#35>", line 1, in <module> b NameError: name 'b' is not defined >>>
字典的方法
get(key) 返回指定键的值,如果值不在字典中,则返回default值
items() 以列表返回可遍历的(键,值)元组对
keys() 以列表返回字典所有的键
values() 以列表返回字典所有的值
>>> a = {'name':'jack','age':20,'addres':'beijin'} >>> a {'name': 'jack', 'age': 20, 'addres': 'beijin'} >>> a.get('name') # 根据键获取值 'jack' >>> >>> a.items() # 返回键-值元组的列表 dict_items([('name', 'jack'), ('age', 20), ('addres', 'beijin')]) >>> >>> a.keys() dict_keys(['name', 'age', 'addres']) >>> a.values() dict_values(['jack', 20, 'beijin']) >>>
遍历字典
遍历字典获得的键值对是随机无序的
>>> a {'name': 'jack', 'age': 20, 'addres': 'beijin'} >>> for key in a: print(key) name age addres
>>> a {'name': 'jack', 'age': 20, 'addres': 'beijin'} >>> for i in a.items(): print(i) ('name', 'jack') ('age', 20) ('addres', 'beijin') >>> for i in a.items(): print(i[0],i[1]) name jack age 20 addres beijin >>>
>>> for key,value in a.items(): print(key,value) name jack age 20 addres beijin >>>