day6 字典

时间:2023-03-09 00:05:03
day6 字典
字典的创建方式  注意 字典是无序的   1. dic{"name":"yang","age":35}       常用还是用这个  2. dic3 = dict((("name","yang"),))     有点麻烦,借助类的方法创建:每个list或者dic都是自己的便携的创建方法。  3. dic6 = dict.fromkeys(["host1","host2","host3"],"test")     这个可以实现类似于初始化的操作,将多个键值一起赋值    打印出来之后:{'host1': 'test', 'host2': 'test', 'host3': 'test'}

字典的嵌套  内部可以嵌套列表元祖字符串等
 # 字典的嵌套
 china = {
     "shandong":["linyi","liaocheng"],
     "hubei":{"wuhan":"shenghui","suizhou":"city"},
     "dhahsd":"xxx"
 }

字典的遍历
 dic7 = {"name":"alex","age":18}
 print(dic7.items())
 for i in  dic7:           # 循环打印键
     print(i)

 for i in  dic7:           # 循环打印值
     print(i,dic7[i])      # 推荐用这种方式,效率高一些

 for i,v  in dic7.items(): # 循环打印值
     print(i,v)

增删改查

修改
 # 修改
 # 根据类型,字典就找键,列表就找索引位置,最后赋值
 china["shandong"][0] = "qingdao"
 print(china)
删除
 # 删除
 #del 删除指定键值对,也可以删除整个字典
 del dic5["name"]
 print(dic5)
 del dic5  # 删除整个字典

 #clear 清空,但是会保留空字典
 dic5.clear()
 print(dic5)

 # pop 弹出,可以返回值再次对其他变量进行赋值操作
 ret = dic5.pop("hobby")
 print(ret)
 print(dic5)

 #emmm...废物命令,字典是无序的,此命令是随机删除某个键值对,并以元祖形式
 a = dic5.popitem()
 print(a,dic5)

其他方法
 # 带默认值的查询
 # setdefault(键,默认值)
 # 根据键查值,若查不到返回默认值,查到则返回真实值
 print(china.setdefault("某个没值的或者不存在的键","默认值"))
 #  结果:默认值
 # 排序
 seq = {2:"}
 print(sorted(seq))           # 按照键排序
 print(sorted(seq.values()))  # 按照值排序
 # ps: 列表可以用.sort进行排序,字典里面没有这命令

总结:字典的值可以任意值,但是键不能是布尔值,字典,或者列表。字典是无序的.get      指定键来取其值,不存在时可以指定默认值,默认是none.update   更新已存在的,不存在可以增加。.keys     返回所有的键.valaues  返回所有的值.items    返回所有的键值对.pop      删除键,可赋值,赋值的时候是赋键的值,不存在时可以指定默认值,默认是none