字典的基本操作

认识字典:

用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开,key值是必须是唯一的,否则只能生效一个,value 可以是任何类型的值(唯一性,无序)

通过使用hash算法计算key的哈希值,在使用哈希值来存储数据,所以key值必须是不可变类型

        不可变: 字符串, 元组, int, bool

        可变的: list, dict, set

字典的添加和修改

  1.info[键的名称] = 某个值       如果该键的名称在字典中已经存在了,那么就是修改该键的值,如果该键的名称不存在 ,那么就是添加该键到该字典中 

  dic['王者荣耀'] = '鲁班七号' #如果key是不存在的执行的就是添加的操作
  
dic['王者荣耀']  ='牛魔王'  #如果key已经存在在字典中的话,执行的就是修#改的操作

  2.dic.setdefault() 在setdefault 中先检测是否存在key,如果不存在,就新增,如果就不进行新增的操作,但是两者都会返回这个key的对应的value 值

  3.dic.update(字典b变量)  将字典b的项添加到字典dic中,相当于列表中的extend

大概作用:如果在更新的时候,两个字典如果含有相同的key,key对应的值就会被更改,如果b中有但是dic中没有,该键值对会直接被添加,如果dic 中有,但是b中没有,那么key对应的值就不变

 

字典的删除(pop ,popitems,clear,del)

cc = dic.pop('王者荣耀') #返回的是key对应的值

dd = dic.popitem()#是随机删除的,返回的是键值对,

 dic.clear()   #直接清空字典

   del dic[key]  eg : del dic[‘王者荣耀’] #直接删除根键是‘王者荣耀’对应的键值对

字典的查询(dic[key],dic.get(key,’没有’),setdefault(key))

  1. 直接通过使用dic[key] 查询对应的值,存在的问题是,如果给出的key在字典中是不存在的,那么就会报错,
  2. 使用dic.get(key,‘没有找到的的返回值,默认返回None’)作用与上面的一样,只是如果在找不到的时候没有报错,并且可以手动设置没有找到的时候返回的值是什么
  3. setdefault(key) 具体作用与看上面添加的部分

直接循环字典的时候拿到的就是key

dic={'射手':'鲁班七号','刺客':'李白','坦克':'项羽'}
for i in dic:
    print(i)
常用的字典遍历
方法1::

for i in dic:
print(i,dic[i])

方法2:

for a,b in dic.items(): print(a,b)
 

字典的其他功能

1.根据序列创建字典,并指定统一的值

  fromkeys   创建一个新的字典,其中包含指定的键,但每个键的值是none

dict.fromkeys([‘name’,’age’],‘这里是修改默认值’) 默认是所有的值都是none如果想要更改的话,通过上面的方式进行修改

以下的infor或者是info 都是字典的名称

infor = {‘age’:18,’name’:’panzhenwei’}

infor.keys() 查看字典的键在对象中通过类似列表的形式显示出来

infor.values() 查看字典的所有的值,全部列出

infor.items()   查看键——值,在对象中通过元组的方式显示出来

字典的copy

如果是使用c = info.copy() 只是浅复制,如果是替换原来的值得话,原字典不会受影响,如果是修改字典里面的值的话,连原来的字典都是会被修改的

c[‘age’] = 22    这个只是替换,原来的字典没有改变

c[‘name’].remove (chenweixian) 这样的话,连原来的字典都是会被修改的

通过from copy import deepcopy

先要进行浅复制c = date.copy()

d = deepcopy(c)   深度复制

简单数据库

 a = {panzhenwei:{‘age’:18,’name’:panzhenwei}}

使用人名作为key 但值的话在嵌套一个字典

猜你喜欢

转载自www.cnblogs.com/vivi0403/p/9836844.html
今日推荐