目录

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

1.定义:

2.格式:

3.字典创建示例

​4.增加字典元素

5.删除字典

6.字典的访问

7.字典的复制

8.使用get()方法获取指定的键值

9.字典的遍历

10.字典内涵列表

11.字典内含字典


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

1.定义:

字典属于可变序列,使用‘ 键:值 ’(key - value)的方式配对存储数据。Python的字典由”键”和“值“构成,其中”键“表示查找的数据,”值“表示查找的结构,类似于新华字典的“ 拼音 - 汉字”

2.格式:

dictname = { ' key1 ' : ' value1 ',' key2 ' : ' value2 ', ... , ' key n ' : ' value n ', }

dictname --- 字典名

key --- 元素的键

value --- 元素的值,可为任意数据,不需要唯一

3.字典创建示例

dict1 = {'andy': 1001, 'fox': 1002, 'alice': 1003}
dict2 = {}  # 空字典
dict3 = dict()  # 使用dict()方法,强制转换 创建空字典
​
name = ['lose', '凝光', '风霜', '学业']
sign = ['001', '002', '110', '561']
# 使用zip()函数 将列表或元组对应的元素组合成字典
dict4 = dict(zip(name, sign))
​
dict5 = dict(a=92.5, b=77.4, c=64.9)  # 键 = 值的方式创建
print(dict1, '\n', dict2, '\n', dict3, '\n', dict4, '\n', dict5)
​
结果:
{'andy': 1001, 'fox': 1002, 'alice': 1003} {} {} {'lose': '001', '凝光': '002', '风霜': '110', '学业': '561'} {'a': 92.5, 'b': 77.4, 'c': 64.9}
​
Process finished with exit code 0

​4.增加字典元素

   格式 --- dictname[键] = 值

dict1 = {'西瓜': 1, '香蕉': 8, "苹果": 10}
print(dict1)
dict1['橘子'] = 6
print(dict1)
dict1["苹果"] = 12
print(dict1)
​
结果:
{'西瓜': 1, '香蕉': 8, '苹果': 10}
{'西瓜': 1, '香蕉': 8, '苹果': 10, '橘子': 6}
{'西瓜': 1, '香蕉': 8, '苹果': 12, '橘子': 6}
​
Process finished with exit code 0

5.删除字典

 del 字典名[键] --- 删除字典中特定元素

dictname.clear( ) --- 清空字典全部元素

del 字典名 --- 删除字典整体

        例

dict1 = {'西瓜': 1, '香蕉': 8, "苹果": 10}
del dict1['西瓜']
print(dict1)
dict1.clear()
print(dict1)
del dict1
print(dict1)
​
结果:
{'香蕉': 8, '苹果': 10}
{}
Traceback (most recent call last):File "E:\pythontext\test3.py", line 1886, in <module>print(dict1)
NameError: name 'dict1' is not defined
​
Process finished with exit code 1
​

6.字典的访问

dictname [ ]

dict1 = {'西瓜': 1, '香蕉': 8, "苹果": 10}
print(dict1['香蕉'], dict1['苹果'])
​
结果:
8 10
​

7.字典的复制

   作用 --- 保护原字典内容

   格式 --- new_dictname = dictname.copy( )

dict1 = {'西瓜': 1, '香蕉': 8, "苹果": 10}
dict2 = dict1.copy()
print(dict1, '\n', dict2)
print(id(dict1), id(dict2)) # 字典拷贝 默认使用深拷贝
​
结果:
{'西瓜': 1, '香蕉': 8, '苹果': 10} {'西瓜': 1, '香蕉': 8, '苹果': 10}
1597252597504 1597252597696
​
Process finished with exit code 0
​

注意:

默认为深拷贝,新字典地址独立

8.使用get()方法获取指定的键值

  格式 --- dictname.get( key, default )

key --- 指定的键

defaul --- 可省略,用于指定键不存在时,返回默认值,若省略则返回None

dict1 = {'Name': 'andy', 'Age': 17, 'Class': 19}
print(dict1.get('Age'))
print(dict1.get("Score"))
print(dict1.get('Score', '无此选项'))
# 若访问的键不存在则执行default
​
结果:
17
None
无此选项

9.字典的遍历

格式1 --- 遍历值,items()方法

for i in dictname.items():

处理 i

格式2 --- 键:值遍历

for key,value indictname.items():

处理 key 和 value

name = ['lose', '凝光', '风霜', '学业']
sign = ['001', '002', '110', '561']
dict1 = dict(zip(name, sign))
​
for i in dict1.items():print(i)
​
for j, k in dict1.items():print(j, "的编号为:", k)
​
结果:
('lose', '001')
('凝光', '002')
('风霜', '110')
('学业', '561')
lose 的编号为: 001
凝光 的编号为: 002
风霜 的编号为: 110
学业 的编号为: 561
​
Process finished with exit code 0

​        格式3 --- 遍历字典的键,keys()

for key dictname.keys():

处理

players = {'张三':77.5,'李四':55.9,"王五":87.6}
for name in players.keys():print("姓名:",name)结果:
姓名: 张三
姓名: 李四
姓名: 王五
​
Process finished with exit code 0

注意:

1. 不允许同一个键出现2次,创建时如果同一个键被赋值2次,后一个会被记住

dict1 = {'andy': 1001, "score": 92, 'andy': 1002}
print(dict1)
​
结果:
{'andy': 1002, 'score': 92}

2. 键必须不可变,所以使用数字、字符串、元组来充当,列表不行

dict1 = {['andy']: 1001, "score": 92}
print(dict1)
​
结果:
Traceback (most recent call last):
File "E:\pythontext\test3.py", line 1916, in <module>dict1 = {['andy']: 1001, "score": 92}
TypeError: unhashable type: 'list'
​
Process finished with exit code 1

10.字典内涵列表

列表存储在字典中时,一般作为字典的某个键的值出现,需要使用嵌套循环完成处理,外层循环用来取得字典的键,内存循环用于取得值或将列表拆解

     例

sports = {'andy': ['篮球', '足球', '橄榄球'],'jenny': ['体操', '游泳'],'joker': ['羽毛球', '轮滑鞋', '骑车']}
for name,na_sport in sports.items():print('%s喜欢的运动是:'%name,end=' ')for sp in na_sport:print(' ',sp,end=' ')print()结果:
andy喜欢的运动是:   篮球   足球   橄榄球
jenny喜欢的运动是:   体操   游泳
joker喜欢的运动是:   羽毛球   轮滑鞋   骑车
​
Process finished with exit code 0

11.字典内含字典

字典存储在字典中一般用于表示字典中键的值

wechat = {'001': {'last_name': '张三', 'first_name': '李四', 'city': '西安'},'002': {'last_name': '王五', 'first_name': '刘柳', 'city': '咸阳'}}
for num, name in wechat.items():print("账号:", num, end=' ')print('姓名:', name['first_name'], end=' ')print('住址:', name['city'])结果:
账号: 001 姓名: 李四 住址: 西安
账号: 002 姓名: 刘柳 住址: 咸阳
​
Process finished with exit code 0

Python之第六章 内置容器 --- 字典(映射)相关推荐

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

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

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

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

  3. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

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

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

  5. 《Head First Python》第六章--定制数据对象

    先上数据集:Head First Python 数据集 第六章的数据在第五章的基础上加了两个属性:姓名和出生日期 james2.txt James Lee,2002-3-14,2-34,3:21,2. ...

  6. python一些常用函数_【python】常用的一些内置函数

    1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...

  7. python基础总结--- 列表、内置函数(4-5)

    文章目录 6. 列表 6.1 列表的索引和切片 6.2 修改列表的元素值 6.3 列表的常用方法 6.3.1 添加元素append 6.3.2 添加元素 extend 6.3.3 插入元素insert ...

  8. Python 2.7 学习笔记 内置语句、函数、标准库

    使用任何开发语言进行软件开发,都离不开语言提供的内置库(或Api),甚至说内置库的强大及使用是否方便都会影响大家对开发语言的选择. python语言,一样提供了很多内置的功能,可供开发时使用.主要有如 ...

  9. 用Autofac替换.net core 内置容器

    官方建议使用内置容器,但有些功能并不支持,如下: 属性注入 基于名称的注入 子容器 自定义生存期管理 Func<T> 支持 所以可以使用其他第三方IOC容器,如Autofac,下面为学习使 ...

最新文章

  1. java笔试题_【干货分享】中兴通讯2021校招笔试测评攻略
  2. PHP 遇见 Serverless,帮你解决这些痛点
  3. 在国外读phd 的时候和supervisor沟通的时候需要注意的点
  4. 今天闲来无事给我这老伙计A4L换个机油
  5. tornado的资料(暂时没看)
  6. 关于RTB实时竞价的基本原理
  7. 俄罗斯独立自主的计算机技术和计算机网络
  8. atto软件测试速度,基于ATTO的传输速度VS文件大小测试
  9. 【Pr】视频剪辑学习记录——导出
  10. 基于深度图像的行人检测、跟踪技术研究_周波_2014
  11. 游戏公司的交互设计人员一般都做什么工作?
  12. nginx配置详细说明
  13. 网络抖动多少ms算正常_网络延迟多少ms才算正常
  14. uniapp 上传图片
  15. 【案例】电影数据分析
  16. html学习笔记-用代码画皮卡丘
  17. 指爱打字群添雨跟打器使用教程(指爱群新手教程)-by指爱群友
  18. 那个学php的上吊了,一路名校的中国博士,在美国上吊自杀了
  19. squid代理服务器应用及它的几种代理模式
  20. BUG:索引字段超长-Specified key was too long; max key length is 767 bytes

热门文章

  1. AD19滴泪添加与删除
  2. Oracle存储过程打印输出错误信息、行号,快速排查
  3. apache ii评分怎么评_APACHEII评分说明
  4. Ubuntu 14.04出现“device not managed”错误及ubuntu可以ping通外网浏览器上不了网。
  5. 让插入PPT的音乐跨幻灯片后同时播放
  6. 多线程编写12306售票系统
  7. 如何彻底关闭Wiindows10系统自带输入法
  8. LXC的Python学习笔记
  9. 计算机提示存储空间不足怎么办,Win7软件提示"存储空间不足,无法处理此命令"怎么办...
  10. Java平时练习(一)