字典的学习

字典存在的必要?????????

字典的定义 a={}

字典是底层哈希存储的不用从头遍历查,找速度很快,字典是无序的

使用角度字典是描述的数据结构,“name”:"root" 使用上有描述性好存储

 字典的特性

字典的key不能重复 添加有重复会覆盖 

字典的定义a={} 可以这样,但是元祖不能这样定义 

字典的数据类型的key 99%的都是字符串 和整型

value是任意数据类型 

字典的取值是一行一行的取 

怎么简单通过key去取value????? 记住要加引号 

b={"ces":"12345",'ces1':'123456'}
print(b["ces"])
print(b['ces1'])
print(b.get("ces")) 这种取值,取不到不会报错 返回一个默认值none 
修改值
b["ces"]='2112' 已经存在就覆盖,没有就新增

for key in b.keys():  b.keys()就是类列表对象,列表特征他都有但他不是一个真正的List 

想用索引就可以强转List
for key,va in b.items(): 两个变量接收循到的key 和value  
a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,  '刘老师': 1280}
单字典取value得和的写法
count=0    第一种写法 
for i in a.values():
count+=i
print(count)
第二种写法 
print(sum(a.valaus()))

取字典套集合的数据整合,这种类型的
b={'技术部' : (367, 500, 45),  '人力资源部': (247, 368, 1280),  '财务部': (87, 100, 24, 50)}
count=0
for v in b.values():
count=count+sum(v)
print(count)

a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,'刘老师': 1280,'贾乃亮': 760}
print('刘德华' in a ) 注意in 就是默认判断key在不在

values重复的概率很大
a.get 和a.pop 区别 都弹出来一个是查一个是删除key
怎么更新字典的key ????????
pop取值并删除
del a['刘德华'] 这个也是删除
a['张三']=a.pop('刘德华')  实际上是先删除在增加  也叫用一行代码写出字典的更新和删除 

del语句

del语句可以删除任何位置处的列表元素, 若知道某元素在列表中的位置则可使用del语句.

pop()可删除任意位置的元素并将其返回, 只需在括号内指定要删除元素的索引即可, 当括号内为空时则删除该列表最后一个元素并将其返回.

remove()方法可根据值删除元素, 若不知所要删除元素在列表中的位置时可用remove()删除, 需要注意的是remove()所删除的元素是列表中第一个配对的值

 两个字典的update   意思两个字典合成一个字典 

注意如果b里存在和a出一样了把值更新替换成a的  字典不能a+b 和a*b 操作

a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,'刘老师': 1280,'贾乃亮': 760}
b={'本科':'没过'}
a.update(b)
print(a)

快速构造字典的方法
a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,'刘老师': 1280,'贾乃亮': 760}
cc={}.fromkeys(a)
print(cc)
a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,'刘老师': 1280,'贾乃亮': 760}
cc={}.fromkeys(a,0)
print(cc)
如果有两个key 会自动去掉重复的,
列表去重的三种方法
第一种方法
找一个新列表,发现不重复的往里面扔
第二种方法
把他强转成set 在转成List
第三种
先转成字典然后在转成list
a={'刘德华' : 367,  '张学友': 247 ,  '李小璐': 50,'刘老师': 1280,'贾乃亮': 760}
b=list({}.fromkeys(a).keys())
print(b)
a=[{
"from":{"x":39.123, "y":40.234},
"to": {"x":39.123, "y":40.234}}]
jj={}
for key,value in a[0].items():
tmp=[]
for i in value.values():
tmp.append(str(i))
jj[key]=','.join(tmp)
print([jj])#要是套列表这么套


 

posted @ 2021-06-30 16:21  测试董先生  阅读(99)  评论(0编辑  收藏  举报