博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础知识三 字典-dict + 菜中菜
阅读量:4955 次
发布时间:2019-06-12

本文共 2775 字,大约阅读时间需要 9 分钟。

3.7字典:dict+菜中菜

1.简介

​ 无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联

​ 定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}

逗号分割的是一个元素,'cx'(键):10(值) -- 键值对

字典的键:要使用不可变数据类型(可哈希)。要求键唯一,如果有重复的,后面的会将前面的覆盖。

​ 可哈希的 -- 不可变的数据类型 - 避免哈希冲突使用了开放寻址法

​ 不可哈希的 -- 可变的数据类型

字典的值可以任意。

2.字典的使用

1.增:
  1. 直增:dict1['li'] = 89
  2. dict1.setdefault('liw',100)#此方法按键去查字典是否有对应的键值对,如果没有,执行添加,如果有,则不添加,有返回值,原字典有,则返回值,没有返回None
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}#1dict1['li'] = 89print(dict1)#2print(dict1.setdefault('liw'))dict1.setdefault('liw',100)print(dict1.setdefault('liw',100))print(dict1)
2.删:
  1. del dict1['cx'] :通过查找字典的键删除键值对,如果没有会报错。

  2. dict1.pop('cx'):通过字典的键删除键值对,返回被删除值

  3. dict1.clear():清空

    dict1 = {'cx':10,'liwenhu':80,'zhangyu':50,'wu':20}#1del dict1['cx'] print(dict1)#2dict1.pop('wu')print(dict1.pop('wu'))print(dict1)#3dict1.clear()print(dict1)
3.改:
  1. dict1['cx'] = 'dsb' 通过键,如果原字典中没有此键对应的键值对,就是添加,如果有,就是修改

  2. dict1.update(dict2) :update括号中的字典级别高于前边的字典(括号中放的是要跟新的字典)

    dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}#2dict2.update(dict1)print(dict2)
4.查:
  1. for 循环,获取的是键。

  2. dict1.get('cx') :通过键获取值,如果没有会返回None

  3. dict1['cx'] :通过键获取值,如果没有会报错。

    dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}#1for i in dict1:    print(i)#2  print(dict1.get('cx'))#3print(dict1['cx'])
5.字典的嵌套:
dic = {1001:["周杰伦","林俊杰"],       1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},       1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},       1004:{"韦小宝":[{"教主夫人":["教主"]},                    {"阿珂":"刺客"},                    {"双儿":"天地会"},                    {"爱心觉罗建宁":"公主"},                    {"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":[                           "唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}]                             }},                    {"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]},       1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}       }# print(dic)# print(dic[1004]["韦小宝"][0]["教主夫人"][0])# print(dic[1005]["常鑫"][-1])# print(dic[1002]["汪峰"]["前妻2"][-1])# print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"])# print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])

3.菜中菜:

1.高仿列表:
  1. dict1.keys():获取字典中所有的键
  2. dict1.vlaues():获取字典中所有的值
  3. dict1.items():获取字典中所有的键和值(键值对)
2.解构:

解构示意图:

​ a = 10

​ b = 12

​ a,b = b,a

1712363-20190711201123241-1517479224.png

dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}#1.键值对输出for i in dict1:    print(i,dict1.get(i))print(dict1.keys())#2.高仿列表 ,支持for循环,不支持索引-- 结果:ict_keys([True, 'zhangyu', 'cx', 'liwenhu'])for i in dict1.keys():    print(i)#print(dict1.keys()[0])#3.dict1.values(),获取所有的值(可以转列表)print(dict1.values())print(list(dict1.values()))#4.dict1.items():获取键值对for i in dict1.items():    print(i)##解构for i,j in dict1.items():#解构输出键值对    print(i,j)#5.解构。a,b = 10 ,12print(a)print(b)a = 10b = 12a,b = b,aprint(a)print(b)a,b = [1,2]print(a,b)a,_,b = (3.4.5)#'_'无用,只为将不要的4赋值进去print(a,b)#等号后边的值与前边的变量数要一致a = 10,12print(a)#a是一个元组a,b ={'1':'a','2':b}print(a,b)#取到的是键

转载于:https://www.cnblogs.com/Onlywang/p/11172379.html

你可能感兴趣的文章
Linux(一)__入门介绍
查看>>
iOS 键盘
查看>>
Alpha 冲刺(9/10)
查看>>
加入ScrollView后OnGestureListener无效的解决办法
查看>>
Oracle BIEE 向外传递参数的实现方式
查看>>
算法提高 学霸的迷宫
查看>>
Two Sum
查看>>
如何成为一个牛逼的程序员
查看>>
delphi IDE的代码完成功能
查看>>
Delphi XE5 android 获取网络状态
查看>>
int main(int argc,char* argv[]) 的含义和用法
查看>>
jquery 目錄樹
查看>>
git stash的用法
查看>>
关于旅行
查看>>
绝对居中对齐的好办法
查看>>
java ->JDBC
查看>>
朴素贝叶斯
查看>>
团队冲突管理
查看>>
日志记录:MySQL系列之十一
查看>>
spark学习第一天-词频统计demo
查看>>