dict字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
1. 按键值对进行储存,可以储存大量关系型数据
2. 字典内部数据是无序的
3. 字典的key必须是不可变数据类型(可hash)
4. 字典的value可以是任意数据类型
5. 字典内部有一张hash表, 将字典的key都对应为数字,按照二分查找去执行
1、增:
1)dic[key]=value
在不存在该key时,则增加该键值对
如果该key存在,则修改(覆盖)该键值对
2)dic.setdefault(key,value)
如果字典中有该键值对,不做任何改变
如果字典中没有该键值对,则在dic中增加一个键值对:key:value
当value没有的时候,默认为None
2、删:
1)dic.pop(key)
将字典中key这个键值对删除
返回值为这个key对应的value
2)dic.pop(key,参数)
如果字典中没有该key,在key后加上None则可返回“参数”
如果不写“参数”,则会报错
3)dic.popitem()
随机删除字典中的键值对
并将删除的键值对按照元组的形式返回
4)dic.clear()
清空字典内容
5)del dic[key]
删除键值对,如果key不存在,则报错
3、改:
1)dic[key]=value
在不存在该key时,则增加该键值对
如果该key存在,则修改(覆盖)该键值对
2)dic1.update(dic2)
dic = {"name":"Jude","age":18,"sex":"male"} dic2 = {"name":"Joe","weight":75} dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
4、查:
1)dic[key]
获取字典指定key的value
2)dic.get(key,默认返回值)
获取字典指定key的value,如果没有,则返回默认返回值(如果没有设置默认返回值,则此时会报错)
3)dic.keys()
返回一个列表,列表的内容是字典的 键
4)dic.values()
返回一个列表,列表的内容是字典的 值
5)dic.items()
返回一个列表,列表元素为n个元组,元组的内容是字典的 键 和 值
6)for i in dic: #什么都不写,默认打印出字典的key
print i
7)for i in dic.values(): #打印字典的value
print i
8)for i in dic.items(): #打印字典键值对所组成的元组
print i
9)for k,v in dic.items(): #打印字典的键值对,key保存在k中,value保存在v中
print k,v