Python基础知识“入坑“--- 七、字典

一、何为字典

在学习字典之前我们先来认识一下键值对键值对 可以将键(key)和值(value)进行一对一映射,进而可以根据键,快速寻找到值。 打个比方:可以将键理解为学生的学号,值理解为学生本人。在大学中,辅导员可以通过学号快速寻找到对应的学生是谁。

而字典是一种用来存储键值对的结构。

二、创建字典

创建字典(dict)有两种方式:

a = {} #方式一
b = dict() #方式二

print(type(a)) #<class 'dict'>
print(type(b)) #<class 'dict'>

可以在创建字典的同时指定初始值:

student = {
    'id' : 12138 ,
    'name' : '张三'
}
print(student)

运行结果为:
在这里插入图片描述

注意:

1.键值对之间使用逗号进行分割;键和值之间使用冒号进行分割。
2.使用print直接打印键值对内容。
3.为了代码美观,在创建字典时可以将多个键值对分成多行书写。

三、查找键(key)

  • 使用 in 或者是 not in 可以判断 key 是否在字典中,返回值的类型为布尔类型:
student = {
    'id' : 12138 ,
    'name' : '张三'
}

print('id' in student) #True
print('age' in student) #False

print('id' not in student) #False
print('age' not in student) #True

  • 使用 “[ ]” 通过类似取下标的方式,获取到元素的值,在这里所说的 “下标” 是键(key):
student = {
    'id' : 12138 ,
    'name' : '张三'
}

print(student['id']) #12138
print(student['name']) #张三

如果键(key)在字典中不存在,那么程序就会抛出异常:

student = {
    'id' : 12138 ,
    'name' : '张三'
}

print(student['age'])

运行结果为:
在这里插入图片描述

四、新增/修改元素

使用 “[ ]” 可以根据 key 新增/修改元素:

如果 key 不存在,则执行的为新增键值对操作:

student = {
    'id' : 12138 ,
    'name' : '张三'
}

student['age'] = 16
print(student) #{'id': 12138, 'name': '张三', 'age': 16}

如果 key 存在,则执行的为修改键值对操作:

student = {
    'id' : 12138 ,
    'name' : '张三'
}

student['id'] = 12345
print(student) #{'id': 12345, 'name': '张三'}

五、删除元素

可以使用 pop 方法根据 key 删除对应的键值对:

student = {
    'id' : 12138 ,
    'name' : '张三'
}

student.pop('id')
print(student) #{'name': '张三'}

注意:pop 是方法,要记得通过 “.” 调用!

六、遍历字典元素

可以直接使用 for 循环获取到字典中的所有 key,通过 key 进而获取到每一个value:

student = {
    'id' : 12138 ,
    'name' : '张三'
}

for i in student:
    print(i, student[i])

运行结果为:
在这里插入图片描述

七、取出所有key和value

  • 使用 keys 方法可以获取到字典中的所有 key:
student = {
    'id' : 12138 ,
    'name' : '张三'
}

print(student.keys()) #dict_keys(['id', 'name'])

在这里的 dict_keys 是一种特殊的类型,专门用来表示字典中的所有 key。大部分元组支持的操作 dict_keys 也同样适用。


  • 使用 values 方法可以获取到字典中的所有 value:
student = {
    'id' : 12138 ,
    'name' : '张三'
}

print(student.values()) #dict_values([12138, '张三'])

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


  • 使用 items 方法可以获取到字典中的所有 item:
student = {
    'id' : 12138 ,
    'name' : '张三'
}

print(student.items())  #dict_items([('id', 12138), ('name', '张三')])

此处的 dict_items 也是一种特殊的类型,和 dict_keys 类似。

八、合法的key类型

并非所有的类型都可以作为字典的key。

字典本质上是一个哈希表,哈希表的 key 要求是可哈希的,即可以计算出一个哈希值。

我们可以使用 hash 函数计算某个对象的哈希值,只要是能计算出哈希值的类型,都可以作为字典的key:

print(hash(1))
print(hash(3.14))
print(hash('hello'))
print(hash(True))
print(hash(()))  #()是一个空的元组

运行结果为:
在这里插入图片描述

  • 列表无法计算哈希值:
print(hash([]))

运行结果为:
在这里插入图片描述


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

运行结果为:
在这里插入图片描述


Ending。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值