【Python基础齐发】:Python字的概念

 一、字典

1.1 字典是什么

字典是一种存储 键值对 的结构.
啥是键值对? 这是计算机/生活中一个非常广泛使用的概念.
把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值.

1.2 创建字典

  • 创建一个空的字典. 使用 { } 表示字典.
a = { }
b = dict()
print(type(a))
print(type(b))

也可以在创建的同时指定初始值
键值对之间使用 , 分割, 键和值之间使用 : 分割. (冒号后面推荐加一个空格).
使用 print 来打印字典内容

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

c9ddc91ccb7b46e6afb5013a71f803d8.png

  • 为了代码更规范美观, 在创建字典的时候往往会把多个键值对, 分成多行来书写. 
student = {
    'id': 1,
    'name': 'zhangsan'
}

 最后一个键值对, 后面可以写 , 也可以不写.

1.3 查找 key

  • 使用 in 可以判定 key 是否在 字典 中存在. 返回布尔值.
student = {
    'id': 1,
    'name': 'zhangsan',
}
print('id' in student)
print('score' in student)

43d30c87303a476abcc19ee60e1e7445.png

  • 使用 [ ] 通过类似于取下标的方式, 获取到元素的值. 只不过此处的 "下标" 是 key. (可能是整数, 也可能是字符串等其他类型).
student = {
    'id': 1,
    'name': 'zhangsan',
}
print(student['id'])
print(student['name'])

 e34b0d4cb3d941f0b1b5341f0ba554d8.png

  • 如果 key 在字典中不存在, 则会抛出异常. 
student = {
    'id': 1,
    'name': 'zhangsan',
}
print(student['score'])

 b04d2b88e37e4fb89ee85af84b4fcd7b.png

1.4 新增/修改元素

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

  • 如果 key 不存在, 对取下标操作赋值, 即为新增键值对
student = {
    'id': 1,
    'name': 'zhangsan',
}
student['score'] = 90
print(student)

f0b1203580444f00b29a7f5ee317c851.png

  • 如果 key 已经存在, 对取下标操作赋值, 即为修改键值对的值.
student = {
    'id': 1,
    'name': 'zhangsan',
    'score': 80
}
student['score'] = 90
print(student)

9222514602984e0e9552726f147805b5.png

 1.5 删除元素

  • 使用 pop 方法根据 key 删除对应的键值对.
student = {
    'id': 1,
    'name': 'zhangsan',
    'score': 80
}
student.pop('score')
print(student)

57071d26bc7e414983ecdde6c84c3f70.png

1.6 遍历字典元素

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

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

edaa46a254e2463fa9de72ef74391dcf.png

1.7 取出所有 key 和 value

  • 使用 keys 方法可以获取到字典中的所有的 key
student = {
    'id': 1,
    'name': 'zhangsan',
    'score': 80
}
print(student.keys())

baba0bb72b504d8099f9e23cbcad2b21.png

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

  • 使用 values 方法可以获取到字典中的所有 value
student = {
    'id': 1,
    'name': 'zhangsan',
    'score': 80
}
print(student.values())

55b390f704104dca9f77db1e6e3920d8.png

  • 使用 items 方法可以获取到字典中所有的键值对 
student = {
    'id': 1,
    'name': 'zhangsan',
    'score': 80
}
print(student.items())

44e88500bc104e9aab56edc31966c365.png

1.8 合法的 key 类型

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

  • 可以使用 hash 函数计算某个对象的哈希值.
  • 但凡能够计算出哈希值的类型, 都可以作为字典的 key.
print(hash(0))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash(())) # ( ) 是一个空的元组

08d9b3fa3e974e839d63258cd1dc8272.png

  • 列表无法计算哈希值.
print(hash([1, 2, 3]))

67b6fe0e9b9549a89add611b4f6abfd3.png

  • 字典也无法计算哈希值 
print(hash({ 'id': 1 }))

0e3a354451fa4bb28ffbd0309eb9d2bc.png

猜你喜欢

转载自blog.csdn.net/m0_75022408/article/details/146191033
今日推荐