1.字典:

字典是python中唯一 的映射类型,采用键值对(key-value)的形式存储数据。
字典是无序存储的。且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,
而不是通过偏移存取。|

2.创建字典

2. 1创建一个空字典

dict={ }
print (dict)
dict1={"a":12, "b":23}
dict2=dict({"a":12, "b":34})

2.2 传入可迭代对象{ 一 一对 应}

b=dict(zip(["a","b","c"],[1,2,3]))
print (b)等同于:
1i1=["a","b","c"”]
li2=[1,2,3]
b=dict (zip(1i1,1i2))
print (b)
输出:{"a":1,"b":2,"c":3}相当于:
c=dict([(' one' ,1),(' two' ,2),(' three' ,3)])
print( c )
输出:{'one':1,'two':2,'three':3}

2.3注意:如果键值有重复的, 就显示最后的一个值

c1=dict([('one' ,1),('two' ,2),('three' ,3),('three',4),('three' ,5)]) |
输出: {'one':1,' two' :2,'three' :5}

2.4 直接传入映射对象,字典创建字典

d=dict({'one' :1,'two' :2,'three' :3})
print(d)
输出: {'one' :1,'two' :2,'three' :3}

3.增加数据:

3.1直接添加键值对

dic={"name":"zhangsan","age":18,"sex":"女"}
dic["address"]="辽宁"
dic["address1"]=" liaoning"
print (dic)
输出: {'name' :'zhangsan',' age' :18,' sex' :'女,' address' :辽宁','address1' :' liaoning'}

3.2添加的值是列表形式

dic={"name”:'zhangsan", "age" :18, "sex":"女"}
dic['li']=["a","b","c"]
print (dic)
输出: {'name' :' zhangsan',' age' :18,'sex' :'女,"1i':['a','b','c']}

3.3 setdefault()

在字典中添加键值对时,只有键值对应的值是none时会更改添加
原字典中存在以及设置的键值对,则不会更改或者覆盖

dic={" name" :" zhangsan","age" :18, "sex":"女"}
dic. setdefault('address",'asd')
print (dic)
输出: {'name' :'zhangsan','age' :18, 'sex' :'女','address':'asd'}
dic. setdefault(" address", "123")
print (dic)
输出: (没有改变) {' name' :'zhangsan',' age' :18,’sex' :'女','address' :' asd'}

4.删除数据:

4.1 pop() 根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值第二个参数

dic= {"name" :"zhangsan", "age":18, "sex":"女"}
dic_ pop=dic. pop(" name","有对应的键")
print (dic)
print (dic_ pop)
输出: {'age' :18,'sex' :'女'}zhangsan
dic= {"name" :"zhangsan", "age":18, "sex":"女"}
dic_ pop=dic. pop("aa","没有该键")
print(dic)
print (dic_pop)
输出: {"name" :"zhangsan", "age":18, "sex":"女"}没有该键

4.2 del 删除键值对,没有返回,值

dic={"name":"zhangsan","age":18,"sex":"女"}
del  dic["name"]
print(dic)
输出: {'age' :18,'sex' :'女'}

4.3 clear ()清空字典

dic={"name" :"zhangsan","age":18, "sex":"女"}
dic.clear()
print (dic)

5.修改数据:

5.1通过键修改数据

dic= {"name":"zhangsan", "age" :18, "sex":"女"}
dic["name"]="lisi"
print (dic)
输出: {' name': 'lisi', 'age': 18, 'sex': '女'}

5.2update(),将所有的键值对相同的覆盖,没有的添加

dic= {"name" :"zhangsan", "age":18, "sex":"女"}
dic1={" name" :" zhangsan","age" :20,"address":" aaa"}
dic.update (dic1)
print (dic)
输出: {' name’ :’zhangsan',’age’:20,’sex' :’女,’address':'aaa’}

6.查找数据:

6.1 通过键名查找

dic={" name ”:'”zhangsan','age" :18, "sex":"女”}
value=dic ["name"]
print (value)
输出: zhangsanvalue1=dic["add"]
print (value1)
#没有该键则直接报错
输出:报错---

6.2通过get ()去查

dic= {"name" :" zhangsan", "age" :18, "sex":"女"}
value=dic.get(" name", "没查找到")
print (value)
#查找到则直接返回对应的值
输出: zhangsan
dic={" name" :" zhangsan',"age":18, "sex":"女”}
value=dic.get("aa",”没查找到”)
print (va1ue)
#没查找到则返回后一个语句没查找到
输出:没查找到

7.其他操作

7.1 items ()是可迭代的,返回列表

dic={" name" :"zhangsan", "age' :18, "sex":"女"}
item=dic. items()
print (item, type (item)
输出:
dict_ items([( 'name' ,'zhangsan' ), (' age' ,18), ('sex','女')]),
<class' dict_ items' >

注意: <class’ dict_ items’ >这个类型就是dict_ items类型,可迭代的

例子一:
dic={" name”:"zhangsan","age" :18, "sex":"女“}
for i in dic.items():print(i) 输出:  #返回各个键值对 (' name' ,' zhangsan' )  (' age',18) (’sex’,'女’)

7.2 keys() 得到字典的键,返回列表,可迭代

dic={" name”:"zhangsan","age" :18, "sex":"女”}
keys=dic.keys ()
print (keys, type (keys))
输出: dict_ keys([' name',' age' ,’sex' ])<class' dict_ keys' >

7.3 values( )得到字典的值,返回列表,可迭代

values=dic.values()
print (values, type (values))
输出: dict_values([' zhangsan' , 18,'女’])<class' dict _values' >

8.案例同时输出键和值:

方法一:

dic={" name”:”zhangsan", "age" :18, "sex":"女”}
for i in dic. items():#得到字典中的键print(i[0])#得到字典中的值print(i[1])

方法二:

dic={" name”:”zhangsan", "age" :18, "sex":"女”}
for (key, value)in dic. items():print (key, value)

方法三:

dic={" name”:”zhangsan", "age" :18, "sex":"女”}
for key in dic:print (key, dic[key])

方法四:

dic={" name”:”zhangsan", "age" :18, "sex":"女”}
for key, value in enumerate(dic):print (value, dic[value])

7.python基础之基础数据类型--字典dict相关推荐

  1. Python中集合set和字典dict的用法区别

    Python中集合set和字典dict的用法区别 核心知识点 Python列表(list).元组(tuple).字典(dict)和集合(set)详解 Python set集合详解 1. Python创 ...

  2. Python学习基础必备知识点:字典dict详解

    取键值 1.Python 字典 setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None. get() 和 setde ...

  3. python中字典和json的区别_详解python中的json和字典dict

    定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...

  4. 小猿圈 python学习-细讲数据类型-字典

    引子 我们学了列表 , 现在有个需求, 把你们公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Alex",23,"CEO&q ...

  5. python中集合set,字典dict和列表list的区别以及用法

    python中set代表集合,list代表列表,dict代表字典 set和dict的区别在于,dict是存储key-value,每一个key都是唯一的,set相对于dict存储的是key,且key是唯 ...

  6. 在Python中如何对一个字典(dict)的值进行排序

    上代码 >>> xs = {'a': 4, 'b': 3, 'c': 2, 'd': 1}>>> sorted(xs.items(), key=lambda x: ...

  7. 组合数据类型——字典(dict)

    字典 声明 d1 = dict() #声明一个空字典d2 = {'key': 'value', 'key2': 'value2'} #声明一个非空字典 数据操作---- 增加数据 1.key和valu ...

  8. python 将字符串转换成字典dict

    JSON到字典转化: 输出dict类型 dictinfo = json.loads(json_str) 字典到JSON转化: 输出str类型 # 比如: info = {'name' : 'jay', ...

  9. python/由于keys重复导致字典dict在调用update函数时被覆盖

    一.连接两个dict aaa = {'question_type': 'What is the overall condition of the given image?', 'multiple_ch ...

最新文章

  1. 兰州大学计算机考研专硕学费,2018年兰州大学在职硕士研究生学费标准
  2. C++|Qt之QTcpServer基本用法
  3. 字符串字母大小写转换
  4. java源码-AtomicReference
  5. git svn clone
  6. 【IP分析】合并信号concat,拆分总线slice
  7. 为什么C语言简洁灵活方便,C语言语法简洁紧凑使用方便灵活具有丰富的运算.ppt...
  8. 云南机房建设整体解决方案、华为智能模块化数据中心机房
  9. 易软门诊管理软件php,易软门诊管理系统最新下载
  10. 评价模型的常用方法——精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?
  11. win10 中文语言包
  12. wow插件实现优雅的动画页面
  13. wince 百度地图懒人包_百度导航车载wince版|百度地图winCE版 V10.9.2 安卓版 下载_当下软件园_软件下载...
  14. 阿里巴巴sentinel限流
  15. Web身份验证(WebAuthn)
  16. jaspersoft studio实践 --实现网页版打印小票(模板一)
  17. stripe支付使用指南_Stripe vs Braintree:终极指南
  18. python网格交易法详解_什么是网格交易法?网格交易法的详细步骤及举例分析
  19. 预约手机在线维修小程序在线预约下订单上门维修师傅在线接单结合拼团砍价
  20. iOS开发笔记 - 网络篇

热门文章

  1. web前端期末大作业 html+css+javascript网页设计实例 企业网站制作 (绿色植物网站设计)
  2. Ubuntu 20.04 X86成功编译运行wayland、wayland-protocols、weston,亲测有效,踩了很多坑,完美解决。
  3. 【C++】C++静态库和动态库的区别
  4. Java中 支持多继承吗?
  5. vue scoped html样式无效
  6. #644 (Div. 3)F. Spy-string(暴力枚举)
  7. 嵌入式系统的数据结构与算法
  8. PyCharm关闭双击shift全局搜索
  9. 使用gluLookAt发生无法解析符号的错误
  10. 稀疏数组(golang实现)