1、关于字典
(1)字典(二人世界):冒号之前的叫键,冒号之后的叫值
(2)列表是有序序列,第一个放进列表的就在第一个位置,第二个放进列表的就在第二个位置;而字典是无序序列,第一个放进列表的不一定在第一个位置…因为在往字典内存储时,要经过一个hash()的工序
(3)可变序列:可以进行增删改操作的,如列表、字典
不可变序列,如字符串、元组

2、字典的创建方式
2.1 使用{}创建字典

scores = {'张三':100,'李四':98,'王五':45}
print(scores)
print(type(scores))

输出结果:
{‘张三’: 100, ‘李四’: 98, ‘王五’: 45}
<class ‘dict’>

2.2 使用dict()创建字典

student = dict(name='jack',age=20)
print(student)

输出结果:
{‘name’: ‘jack’, ‘age’: 20}

3、字典元素的获取

scores = {'张三':100,'李四':98,'王五':45}

3.1 第一种方式:用[ ]

print(scores['张三'])
#print(scores['陈六'])    #输入不存在的键,会报 KeyError: '陈六'

输出结果:
100

3.2 第二种方式:用get()方法

print(scores.get('张三'))
print(scores.get('陈六'))   #输入不存在的键,不会报错,会输出None   注意与[]区别
print(scores.get('麻七',99))   #这个99是在用get函数查找‘麻七’所对应的value不存在时,提供的一个默认值

输出结果:
100
None
99

3.3 [ ]方法和get()方法的区别
两种方法最大的区别在于,输入不存在的键时,[ ] 会报错,而get()方法不会报错,会输出None或者输出指定的默认值

4、字典中键key的判断

scores = {'张三':100,'李四':98,'王五':45}
print('张三' in scores)
print('张三' not in scores)

输出结果:
True
False

5、字典元素的删除
5.1 删除指定的key-value对

#删除指定的key-value对
del scores['张三']
print(scores)

输出结果:
{‘李四’: 98, ‘王五’: 45}

5.2 清空字典的元素

#清空字典的元素
scores.clear()
print(scores)

输出结果:
{}

6、字典元素的新增

scores = {'张三':100,'李四':98,'王五':45}
scores['陈六'] = 98     #直接加
print(scores)

输出结果:
{‘张三’: 100, ‘李四’: 98, ‘王五’: 45, ‘陈六’: 98}

7、字典元素的修改

scores['陈六'] = 100   #直接改
print(scores)

输出结果:
{‘张三’: 100, ‘李四’: 98, ‘王五’: 45, ‘陈六’: 100}

8、获取字典视图
8.1 获取所有的键key

#获取所有的key
scores = {'张三':100,'李四':98,'王五':45}
keys = scores.keys()
print(keys)
print(type(keys))
print(list(keys))   #将所有key组成的视图转成列表

输出结果:
dict_keys([‘张三’, ‘李四’, ‘王五’])
<class ‘dict_keys’>
[‘张三’, ‘李四’, ‘王五’]

8.2 获取所有的值value

#获取所有的value
values = scores.values()
print(values)
print(type(values))
print(list(values))     #将所有value组成的视图转成列表

输出结果:
dict_values([100, 98, 45])
<class ‘dict_values’>
[100, 98, 45]

8.3 获取所有的键-值key-value对

#获取所有的key-value对
items = scores.items()
print(items)
print(type(items))
print(list(items))     #转换之后的列表元素是由元组组成

输出结果:
dict_items([(‘张三’, 100), (‘李四’, 98), (‘王五’, 45)])
<class ‘dict_items’>
[(‘张三’, 100), (‘李四’, 98), (‘王五’, 45)]

9、字典元素的遍历

for item in scores:print(item)   #只会输出键for item in scores:    #输出键-值对(两种获取值的方式)print(item,scores[item],scores.get(item))

输出结果:
张三
李四
王五
张三 100 100
李四 98 98
王五 45 45

10、字典的特点
10.1 所有元素都是key-value对,键key不允许重复,值value允许重复

d = {'name':'张三','name':'李四'}
print(d)    #键不允许重复,会出现覆盖的情况d = {'name':'张三','nikename':'张三'}
print(d)     #值允许重复

输出结果:
{‘name’: ‘李四’}
{‘name’: ‘张三’, ‘nikename’: ‘张三’}

从以上结果可以看出,当出现两个相同的键名时,出现了覆盖的情况

10.2 字典的元素是无序的
无法在字典中指定位置插入元素,因为是无序的

10.3 字典中的键key必须是不可变对象,字符串等 ,不能是列表(可变序列)

# lst = [10,20,30]
# d = {lst:100}
# print(d)    #报错  TypeError: unhashable type: 'list'

10.4 字典也可以根据需要动态地伸缩

10.5 字典会浪费较大的内存,是一种空间换时间的数据结构
字典查找速度很快,不管有多少元素,只需要通过哈希函数hash()计算存储位置,即可找到元素

11、字典生成式
利用zip()函数

items = ['Fruits','Books','Other']
prices = [96,78,85,100,120]d = {item.upper():price    for item,price in zip(items,prices)}   #upper()函数是转换为大写字母的函数
print(d)     #若两个列表长度不同,则以长度短的那个为准

输出结果:
{‘FRUITS’: 96, ‘BOOKS’: 78, ‘OTHER’: 85}

Python学习笔记4——字典相关推荐

  1. Python学习笔记:字典(dict)

    Python学习笔记:字典(dict) 字典(dict)可能是最重要的Python内置数据结构,更常用的名称是哈希映射(hash map)或关联数组(associate array).它是键值对的集合 ...

  2. Python学习笔记之字典(一)

    1.什么是字典:在Python中,字典是一系列键-值对.每个键都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何Python对象用作字 ...

  3. Python学习笔记之字典(三)

    嵌套:有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套.你可以在列表中嵌套字典.在字典中嵌套列表甚至在字典中嵌套字典. 1.字典列表,一个列表里面包含多个字典,即列表中嵌套 ...

  4. Python学习笔记之字典(二)

    遍历字典:一个Python字典可能包含很多个键值对,在需要获取其数据时,就需要对这个进行遍历,Python支持对字典遍历.字典可用于以各种方式存储信息,其中有多种遍历字典的方式:可遍历字典的所有键值对 ...

  5. python学习笔记(字典)

    字典的使用 现实中的字段及在python中的字段都进行了构建,从而可以轻松查到某个特定的词语(键),从而找到它的意义(值). 某些情况下,字典比列表更加适用: # 表征游戏棋盘的状态,每个键都是由坐标 ...

  6. Python学习笔记 - 探索字典Dictionary使用

    大家好,我是Mr数据杨,想象一下如果你是诸葛亮,那么Python字典就好比你的锦囊妙计,为你提供丰富的策略和方法. 首先要定义一个字典.就像诸葛亮的谋略袋里有各种锦囊,字典也包含了不同的"键 ...

  7. python学习笔记05 字典dic增删查改常用操作及嵌套

    字典dic hashable数据(不可变)才能作为key  list不可 ,不是按照我们保存的顺序保存的,可以认为是无序的. 新增 dic["国际章"] = "汪峰的老婆 ...

  8. Python 学习笔记之字典(进阶篇)

    基础教程介绍了基本概念,特别是对象和类. 进阶教程对基础教程的进一步拓展,说明Python的细节.希望在进阶教程之后,你对Python有一个更全面的认识. 之前我们说了,列表是Python里的一个类. ...

  9. Python学习笔记:列表、字典与集合解析(List, Dict and Set Comprehensions)

    Python学习笔记:列表.字典与集合解析(List, Dict and Set Comprehensions) 1.列表解析 最受喜爱的Python语言特性.过滤一个集合的元素生成一个新的列表. 一 ...

最新文章

  1. 华为云客户端_效果图云渲染已成趋势,云渲染如何选择?
  2. softened softmax vs softmax
  3. php页面调用时间戳,php--------获取当前时间、时间戳
  4. set escape on
  5. 用Matlab与c++程序生成的数据文件绘制sin函数
  6. javascript 正则表达式提取数字使用
  7. etcd php,etcd集群备份和数据恢复
  8. 《动手学深度学习 PyTorch版》学习笔记(二):自动求梯度
  9. VulnHub靶机系列:Os-ByteSec
  10. 海底捞员工:假笑到脸僵,撑到经理月入20万
  11. @property (nonatomic,retain)中的nonatom和retain是什么意思
  12. Wide Deep 模型详解
  13. 8.《创业邦》:十大创业困境
  14. 轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研
  15. 未来的量子计算机模型,量子计算机上量子人工生命模型
  16. 用计算机写文章 单元备课,备课写教案
  17. FPC软排线结构的奥秘
  18. 快速处理灰度图转彩色图方法
  19. 【C#:WinForm+ADO.NET+SQL Server实现验证码登录】
  20. Ruby学习之日期 时间(Date Time)范围(Range)的定义和使用

热门文章

  1. java 添加手机联系人_Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结...
  2. 太空测试第一名至联云t01248告诉你,质押率怎么算?
  3. 高科技幻觉的另一个变种
  4. android 当前应用所占内存,Android获取本应用内存占用的方法
  5. Metaverse 元宇宙入门-05-Virtual Platforms and the Metaverse 虚拟平台与元宇宙
  6. Dell P2721Q 4K显示器 配MacBook Pro 15寸 Late 2013 60Hz刷新率
  7. L010 linux命令及基础手把手实战总结
  8. ubuntu18.04安装并测试gem5模拟器
  9. 【MyBatis】延迟加载
  10. 浏览器的兼容以及写法