Python -- 字典

1. 字典

字典概述:在许多应用中需要利用关键词查找对应信息,例如,通过学号来检索某学生的信息。
其中,通过学号查找所对应学生的信息的方式称为“映射”。
Python语言的字典(dictionary)类型就是一种映射。其他编程语言中也提供类似的结构,
例如,哈希(Hash)、关联数组等。

1.1 字典的创建

在这里插入图片描述


1.1.1 Python zip函数及用法

zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串
以及 range() 区间构成的列表)“压缩”成一个 zip 对象。所谓“压缩”,
其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。

zip() 函数的语法格式为:

zip(iterable, ...)

其中 iterable,… 表示多个列表、元组、字典、集合、字符串,甚至还可以为 range() 区间。


示例: 通过映像函数dict()创建字典

list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
dictionary = dict(zip(list1, list2))
print(dictionary)

运行结果:
在这里插入图片描述
示例: 直接赋值创建字典

dictionary = {"姓名: ": "周天天", "年龄: ": 20}
print(dictionary)

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


1.2 字典元素的访问与遍历

在这里插入图片描述

示例: 通过遍历可以获取字典中的全部“键-值对”

方法 items() 返回一个键值对列表
dictionary = {"姓名: ": "周天天", "年龄: ": 20}
for index, value in dictionary.items():
    print(index, " : ", value)

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


示例: 遍历字典所有的键

可以使用方法 keys() 它会返回一直 键列表,或者不使用任何方法,因为遍历字典时,会默认遍历所有的键.
LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}
# 默认会遍历键
for xu in LiXu:
    print(xu)
# 通过keys()方法遍历键
print('----------')
for xu in LiXu.keys():
    print(xu)

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


示例: 按顺序遍历字典中所有的键

字典总是明确的记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的,
这不是问题。因为通常你想要的只是获取键相关联的正确的值。要以特定的顺序返回元素,
一种办法是在for循环中对返回的键进行排序。
为此可是用函数sorted()来获得按特定顺序排列的键列表的副本。
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
for name in sorted(favorite_languages.keys()):
    print(name.title() + " , thank you for taking the poll.")

在这里插入图片描述


示例: 遍历字典所有的值

可以使用方法 values() , 它可以返回一个值列表
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}
for value in favorite_languages.values():
    print(value)

运行结果:
在这里插入图片描述
示例: 剔除字典中重复的值

这种做法是提取字典所有的值,而没有考虑是否重复. 涉及到的值很少时,这也许不是问题,
但当涉及到大量的值时,最终的列表可能含有大量的重复项. 为了剔除重复项,
可以使用集合(set),集合类似于列表,但不同的是每个元素必须是独一无二的.
可以调用set()方法来找到不包含重复的值的集合.
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'phil': 'python',
}
for favorite_language in set(favorite_languages.values()):
    print(favorite_language)

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


1.3 字典元素的常见操作

1.3.1 字典元素的增加

在这里插入图片描述
示例:

alien = {'color': 'red', 'points': 5}
print(alien['color'])
print(alien['points'])
alien['x_position'] = 5
alien['y_position'] = 20
print(alien)

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


1.3.2 字典元素的删除

在这里插入图片描述

示例: del()函数删除字典指定的键值对

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

del (LiXu['first_name'])
print(LiXu)

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


示例: del删除字典

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

del LiXu
print(LiXu)

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


示例: clear() 函数清空字典

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

LiXu.clear()
print(LiXu)

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


示例: pop() 获取指定key 对应的value ,并删除这个key-value 对

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

print(LiXu.pop('first_name'))
print("------------")
print(LiXu)

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


1.3.3 字典元素的查找

在这里插入图片描述

示例: 通过键值方式

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

print(LiXu['first_name'])

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


示例: get()函数方式

LiXu = {
    'first_name': 'Li',
    'last_name': 'Xu',
    'age': 19,
    'city': 'CQ',
}

print(LiXu.get('first_name'))

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


  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值