python 的内置容器  :    有四个

     

                     list (列表)        set (集合)        tuple   (元祖)        dict  (字典)

Dict  字典   ( )

#   他本质其实也是一种 哈希表 (包装的  键值对!!)

    一个键 对应着一个 值 , 键与键 是不能冲突的(就是不能有两个一模一样的键)

值 是可以重复的。

#   在 Python 中, 键( Key ) 的数据类型 一般就是 数字 字符串 和元祖 ,大多数情况下

键的数据类型 为 字符串 !!  键必须是不可变的!!

值 可以是任意 数据类型!!

创建  :

#    我们在前面 学习 集合的时候,就说过,集合 和 字典 都是 以 { } 的形式呈现的!!

示例  :

 d = { }
>>> type(d)
<class 'dict'>z = { "name"  : "太极", 5:"是整数",(0.3,0.2,0.1):"是小数"}
>>> type(z)
<class 'dict'>

上示就是证明 :  字典中  键  的数据类型 !!

      zip 方式 创建字典    dict(zip( ))

u2 = dict(zip('abc',[1,2,3]))
>>> u2
{'a': 1, 'b': 2, 'c': 3}

注意上示中    'abc'   : 是 a , b,  c  各自成为一个  键

name = ['李晨', '刘勇', '赵雪', "王峰"]
grade = ['89', '92', '76', '65']
dict_1 = dict(zip(name, grade)){'李晨': '89', '刘勇': '92', '赵雪': '76', '王峰': '65'}

访问  :

#   字典的访问 是通过   键 来访问   的 !

示例  :   第一种 访问 方式

z["name"]
'太极'
>>> z[5]
'是整数'
>>> z[(0.3,0.2,0.1)]
'是小数'

示例  :    通过   get   访问

 z.get("name")
'太极'z.get(5)
'是整数'

get  的第二种 访问 方式 :

 z
{'name': '太极', 5: '是整数', (0.3, 0.2, 0.1): '是小数'}z.get("法外狂徒","张三")
'张三'z
{'name': '太极', 5: '是整数', (0.3, 0.2, 0.1): '是小数'}

  :  get 的第二种访问方式 不经常用,但是也要知道这种用法

#   可以看到 第二行的 get 新用法 , 在第一行代码 我们已经说明了 字典 z 里的具体

内容,然后,我们执行 第二行代码, 可以发现 z 字典里 就没有 “ 法外狂徒 ” 和

“张三”  的内容呀 !!!

而 我们执行完 第二行代码 给我们 返回来一个 “ 张三 ”

所以, get 的第二种用法就是 当 字典中 没有 要访问的 键 的时候("法外狂徒") 会

默认将 ( " 法外狂徒 ", " 张三 ") 作为一对 键值对 进行访问 !!

就相当于是  键 : 法外狂徒    值 : 张三

但是在执行完 第二行代码后 再 看 字典 z  的内容 还是原来的样子 ,就说明  :

get  的第二种  用法 不会 改变 字典 的内容!!!

  倘若,法外狂徒 后面 没有张三 ,即 字典中 就没有这个 键 ,直接 返回 None !

增删改  :

#  我们知道  不能对 键 做改动,可以对 值 做改动

增 

 z["gender"]="男"
>>> z
{'name': '太极', 5: '是整数', (0.3, 0.2, 0.1): '是小数', 'gender': '男'}

删 

del z['name']
>>> z
{5: '是整数', (0.3, 0.2, 0.1): '是小数', 'gender': '男'}

我们使用的是  del

  :

由于 我们字典中  键 是不能变的,所以 只能对 值 做以 改变

 z['gender']='女'
>>> z
{5: '是整数', (0.3, 0.2, 0.1): '是小数', 'gender': '女'}

常见方法  :

'clear',       'copy',              'fromkeys',           'get',

'pop',       'popitem',          'setdefault',       'update',

'items',          'keys',              'values'

keys 

 u1
{'球队名': '迈阿密', '球员名': 'james', '球衣号码': 6}
>>> u1.keys()
dict_keys(['球队名', '球员名', '球衣号码'])

#  以列表的形式返回字典中所有的  “

values

u1
{'球队名': '热火队', '球员名': 'james', '号码': 6}
>>> u1.values()
dict_values(['热火队', 'james', 6])

 #   以列表的形式返回字典中所有的   “

items

u1.items()
dict_items([('球队名', '热火队'), ('球员名', 'james'), ('号码', 6)])

#   返回一个列表,列表中以元组的形式把字典中的每一对键值对取出

get

u1.get('球员名')
'james'

#   通过 获取

pop

 u1.pop('球队名')
'热火队'
>>> u1
{'球员名': 'james', '号码': 6}

#   通过 删除 键值对 

popitem

u1['年龄'] = 23
>>> u1
{'球员名': 'james', '号码': 6, '年龄': 23}
>>> u1.popitem()
('年龄', 23)
>>> u1
{'球员名': 'james', '号码': 6}
>>> u1.popitem()
('号码', 6)
>>> u1.popitem()
('球员名', 'james')
>>> u1
{}

 不带参数,是用来删除键值对,先删最后创建的键值对!!

字典的遍历  :

NO : 1         for  key  in  字典对象 

for key in u1 :
...     print(key)
...
球队名
球员名
号码for key in u1 :
...     print(key,u1[key])
...
球队名 热火队
球员名 james
号码 6

 #  上部分是  返回键            下部分 : 直接返回   键值对

NO :2        for    (key,value)    in   字典对象.items()

for(key,values) in u1.items():
...     print(key,values)
...
球队名 热火队
球员名 james
号码 6

NO : 3        for  item   in   字典对象.items()

 for items in u1.items():
...     print(items)
...
('球队名', '热火队')
('球员名', 'james')
('号码', 6)

至此,我们  Python   中四个 内置容器已经全部介绍完了!!

注意  : 当不可变的数据类型,如果包含了可变对象,那么可变对象这部分是可以变化的!!

#   我们学习了 四大容器  列表  字典 元组  集合 ,其中,有的数据类型是可变的,有的是

不可变的,我们在实践过程中也要注意 综合来使用会更加灵活!

示例  :

 t = (1,2,3,4,5)
>>> t[0]=5
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

我们知道 元组类型是不可变的,是不能够修改里面的值的,如上示!!!

倘若 元组 如下所示时 :

t = (1,2,3,4,5,[1,2,355,88])
>>> t
(1, 2, 3, 4, 5, [1, 2, 355, 88])

可以看到,元组 t 里面又包含了一个列表 ,这就是所谓的 不可变数据类型包含了可变数

据对象,因为,列表是可变的!!

这时,就可以对 其进行修改,但是,注意是只能修改可变对象的那一部分!!

t
(1, 2, 3, 4, 5, [1, 2, 355, 88])
>>> t[5][1]=5t
(1, 2, 3, 4, 5, [1, 5, 355, 88])

可以看到。此时 元组 t 的第5个元素也即 列表发生了变化,列表的第2个元素 2 变为 5!

Python 内置容器 之 字典 ( dict )超详细指南相关推荐

  1. python内置容器--元组,字典与集合

    1.4.原组 1.4.1.元组(tuple):将一组不可变的数据序列组合起来形成一个特殊的内置容器 1.4.2元组不允许的操作: 修改,新增元素 删除元素(允许删除整个元组) 所有会对元组内部元素发生 ...

  2. Python内置容器(2)——字典,迭代器,列表解析

    1.迭代器 iterator iter 函数,构造集合. next 方法依次返回迭代器的值 In [42]: li Out[42]: [1, 2, 3, 4, 5] In [43]: it = ite ...

  3. python数据结构之字典(dict)——超详细

    字典(dict) 1.什么是字典 字典是具有映射关系的一个集合,有自己的标志性符号,用{}来定义.字典由多个键以及其对应的键值共同构成的,字典是无序的,只讲究对应关系,并且字典中的键是独一无二的 1. ...

  4. Python之第六章 内置容器 --- 字典(映射)

    目录 Python之第六章 内置容器 --- 字典(映射) 1.定义: 2.格式: 3.字典创建示例 ​4.增加字典元素 5.删除字典 6.字典的访问 7.字典的复制 8.使用get()方法获取指定的 ...

  5. python学习笔记(07)---(内置容器-字典)

    第七章  内置容器(三) 4.字典 (1)概念:字典属于可变序列,使用"键 : 值"(key-value)的方式配对存储数据,类似拼音-汉字的映射关系 (2)格式:dictname ...

  6. Python内置四大数据结构之字典的介绍及实践案例

    Python字典的介绍及实践案例 一.字典(Dict)介绍 字典是Python内置的四大数据结构之一,是一种可变的容器模型,该容器中存放的对象是一系列以(key:value)构成的键值对.其中键值对的 ...

  7. Python之第六章 内置容器 --- 字符串

    目录 Python之第六章 内置容器 --- 字符串 1.概念 2.凭借字符串 --- + 3.多行字符串 4.字符串的切片 例 输入员工省份证号,输出出生日期 5.分隔合并字符串 分隔字符串 合并字 ...

  8. Python基础(四)(列表、元组、字典、字符串、Python内置函数、切片、运算符、成员运算符)

    高级变量类型 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True 非 0 数 -- 非零即真 假 Fa ...

  9. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  10. 8个超好用的Python内置函数

    python中有许多内置函数,不像print那么广为人知,但它们却异常的强大,用好了可以大大提高代码效率. 这次来梳理下8个好用的python内置函数. 1.set() 当需要对一个列表进行去重操作的 ...

最新文章

  1. 科技边框_爱旭科技首创双面PERC电池PID FREE解决方案
  2. MVC中的验证和异常处理以及手工激活验证
  3. Node.js:Web模块、文件系统
  4. 剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作
  5. .NET Core UI框架Avalonia
  6. == 和 is 的区别
  7. java保留二位小数_java使double保留两位小数的多方法 java保留两位小数
  8. Visual Studio 2008带来了什么
  9. pycharm 设置为git默认编辑器_pycharm配置使用git
  10. 图片旋转_系统自带画图程序,图片旋转翻转调整大小修改转换格式图文教程
  11. 2021-08-08三大范式与JDBC
  12. 【故障诊断分析】基于matlab小波包能量分析轴承故障诊断【含Matlab源码 1620期】
  13. 红米AirDots无线蓝牙耳机成功连接WIN7电脑
  14. cad完全卸载教程_完全卸载CAD2012的步骤教程--系统之家
  15. python-opencv2利用 cv2.findContours()函数来查找检测物体的轮廓
  16. 大批量查询京东快递物流,并分析到站延误
  17. 计算机打字键盘怎么控制,键盘是怎样分区的,打字时每个手指分别可控制哪些键...
  18. set_、set_allocated_、mutable_、add_的使用
  19. JDK.8源码阅读项目搭建之记录
  20. vscode运行python终端无显示_vscode的终端不显示内容怎么办

热门文章

  1. [zkaq靶场]命令执行--IBOS协同办公系统通杀漏洞
  2. 如何在android lolipop中开启google now
  3. 凤凰网科技频道定位和主要内容
  4. 防灾科技学院考研计算机,防灾科技学院考研难吗
  5. 一个C++程序员的个人网站搭建
  6. 采样频率Hz 采样率KSPS或MSPS,两种单位的换算关系
  7. 一切皆是映射:浅谈操作系统内核的缺页异常(Page Fault)
  8. 常用网站有哪些,最常用的网站
  9. cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘错误
  10. MacBook怎样退出apple id