python基础语法(十)

简介: python基础语法(十)

字典

字典是什么

字典是一种存储键值对的结构.

键值对是把键和值进行一个一对一的映射, 然后就可以根据键, 快速找到值

就比如:学校的每个同学, 都会有一个唯一的学号.知道了学号, 就能确定这个同学.

此处 “学号” 就是 “键”, 这个 “同学” 就是 “值”

创建字典

创建一个空的字典. 使用 { } 表示字典

a = { }
b = dict()
print(type(a))
print(type(b))

也可以在创建的同时指定初始值

键值对之间使用 , 分割, 键和值之间使用 : 分割. (冒号后面推荐加一个空格).

使用 print 来打印字典内容

student = { 'id': 1, 'name': 'zhangsan' }
print(student)

为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写.

student = {
  'id': 1,
  'name': 'zhangsan'
}

查找key

使用 in 可以判定 key 是否在 字典 中存在. 返回布尔值

student = {
  'id': 1,
  'name': 'zhangsan',
}
print('id' in student)
print('score' in student)

使用 [ ] 通过类似于取下标的方式, 获取到元素的值. 只不过此处的 “下标” 是 key. (可能是整数, 也可能是字符串等其他类型).

student = {
  'id': 1,
  'name': 'zhangsan',
}
print(student['id'])
print(student['name'])

如果 key 在字典中不存在, 则会抛出异常

student = {
  'id': 1,
  'name': 'zhangsan',
}
print(student['score'])

新增/修改元素

使用 [ ] 可以根据 key 来新增/修改 value.

如果 key 不存在, 对取下标操作赋值, 即为新增键值对

student = {
  'id': 1,
  'name': 'zhangsan',
}
student['score'] = 90
print(student)

如果 key 已经存在, 对取下标操作赋值, 即为修改键值对的值

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
student['score'] = 90
print(student)

删除元素

使用 pop 方法根据 key 删除对应的键值对.

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
student.pop('score')
print(student)

遍历字典元素

直接使用 for 循环能够获取到字典中的所有的 key, 进一步的就可以取出每个值了

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
for key in student:
  print(key, student[key])

取出所有 key 和 value

使用 keys 方法可以获取到字典中的所有的 key

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
print(student.keys())

此处 dict_keys 是一个特殊的类型, 专门用来表示字典的所有 key. 大部分元组支持的操作对于dict_keys 同样适用.

使用 values 方法可以获取到字典中的所有 value

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
print(student.values())

此处 dict_values 也是一个特殊的类型, 和 dict_keys 类似

使用 items 方法可以获取到字典中所有的键值对

student = {
  'id': 1,
  'name': 'zhangsan',
  'score': 80
}
print(student.items())

此处 dict_items 也是一个特殊的类型, 和 dict_keys 类似.

合法的 key 类型

不是所有的类型都可以作为字典的 key.

字典本质上是一个 哈希表, 哈希表的 key 要求是 “可哈希的”, 也就是可以计算出一个哈希值

可以使用 hash 函数计算某个对象的哈希值.

但凡能够计算出哈希值的类型, 都可以作为字典的 key.

print(hash(0))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash(()))

列表无法计算哈希值

print(hash([1, 2, 3]))

字典也无法计算哈希值

print(hash({ 'id': 1 }))

总结

字典也是一个常用的结构. 字典的所有操作都是围绕 key 来展开的.

需要表示 “键值对映射” 这种场景时就可以考虑使用字典

目录
相关文章
|
3天前
|
数据采集 人工智能 自然语言处理
python语言的基础语法
严格来说python是先编译成字节码,然后再解释执行的一门语言。
13 7
|
6天前
|
Java C语言 C++
Python基础语法
Python基础语法
11 1
|
6天前
|
JSON 数据格式 索引
python之JMESPath:JSON 查询语法库示例详解
python之JMESPath:JSON 查询语法库示例详解
16 0
|
6天前
|
存储 Python
Python进阶语法之推导式
本章是对自己学完基础语法后,学习python进阶语法推导式过程中,自己的一些理解和看法,因为自己从刚开始第一次看看不懂,到学习一段时间后,通过积累再次看这里的知识点发现自己有了新的理解,这次将这部分知识学完了,剩下就是通过练习来达到熟练了.本章的推导式,包含列表推导式,字典推导式,集合与元组推导式这四种.主要是对python进阶语法推导式,的练习与理解,同时也提高了自己对代码的简化和运行的能力的提高,也是在这次学习中,我发现学习代码更多需要的是对基础和知识的积累,当眼界与思维突破瓶颈,看之前难以理解的事物发现变的容易去使用和理解了.
|
6天前
|
Java 开发者 索引
Python基础语法:类笔记
本篇博文是把自己在学习python类的过程中自己理解和笔记,一点一点总结的写出出来,做一个总结,加深对面向对象编程的理解。
|
6天前
|
Python
python中的语法错误
【4月更文挑战第23天】
21 3
|
6天前
|
测试技术 API 持续交付
【专栏】Python在自动化测试与单元测试中的应用,强调其简洁语法和丰富库的优势
【4月更文挑战第27天】本文探讨了Python在自动化测试与单元测试中的应用,强调其简洁语法和丰富库的优势。文章分为三部分:首先,阐述自动化测试的重要性及Python的易学性、库支持、跨平台和社区支持;其次,介绍了Python的Unittest标准测试框架和Pytest第三方框架的特点与用法;最后,讨论了Web UI和API自动化测试实践,并提出持续集成、测试金字塔等最佳实践。Python为软件开发的测试环节提供了强大支持,帮助构建更稳定的系统。
|
6天前
|
Python
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
Python从入门到精通——1.2.2学习基础语法和数据类型之控制结构
|
6天前
|
机器学习/深度学习 存储 数据挖掘
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
Python从入门到精通——学习基础语法和数据类型 1.2.1变量、整数、浮点数、字符串、布尔值、列表、元组、字典和集合。
|
6天前
|
存储 Python
Python从入门到精通——1.2.3学习基础语法和数据类型之函数定义和调用
Python从入门到精通——1.2.3学习基础语法和数据类型之函数定义和调用