跳转至

Python 笔记 | 字典 dict

字典(dict)是 Python 中的一种数据结构,用于存储键值对(key-value pairs)。在字典中,每个键都是唯一的,并且与一个值相关联。键和值可以是任何数据类型,但键必须是不可变的(如整数、浮点数、字符串或元组)。

字典的创建

可以使用花括号 {}dict() 函数来创建字典。

Python
1
2
3
4
5
# 使用花括号创建字典
my_dict = {'apple': 1, 'banana': 2, 'cherry': 3}

# 使用 dict() 函数创建字典
another_dict = dict(apple=1, banana=2, cherry=3)

访问字典元素

通过键来访问字典中的值。

Python
print(my_dict['apple'])  # 输出:1

修改字典元素

如果键已经存在,可以直接通过键来修改其对应的值。

Python
my_dict['apple'] = 4

添加字典元素

如果键不存在,可以通过赋值来添加新的键值对。

Python
my_dict['date'] = '2023-10-23'

删除字典元素

可以使用 del 语句或 pop() 方法来删除字典中的键值对。

Python
1
2
3
del my_dict['banana']
# 或者
removed_value = my_dict.pop('cherry')

遍历字典

可以使用 for 循环来遍历字典的键、值或键值对。

Python
# 遍历键
for key in my_dict:
    print(key)

# 遍历值
for value in my_dict.values():
    print(value)

# 遍历键值对
for key, value in my_dict.items():
    print(key, value)

检查键是否存在

可以使用 in 关键字来检查字典中是否存在某个键。

Python
if 'apple' in my_dict:
    print("Key 'apple' exists.")

获取字典的长度

使用 len() 函数来获取字典中键值对的数量。

Python
print(len(my_dict))

字典在 Python 中非常有用,因为它们提供了一种灵活的方式来存储和操作数据。你可以根据需要使用键来访问、修改或删除数据,而无需关心数据在内存中的实际位置。

综合实践

Python
# 词典(可变类型) dict = {key : value}  
slang_dict = {"觉醒年代": "《觉醒年代》首次以电视剧的形式回溯中国共产党的孕育和创立过程,生动再现...",  
              "YYDS": "“永远的神”的拼音缩写,用于表达对某人的高度敬佩和崇拜。2021年东京奥运会...",  
              "双减": "指进一步减轻义务教育阶段学生作业负担和校外培训负担。其目标是使学校教育...",  
              "破防": "原指在游戏中突破了对方的防御,使对方失去防御能力。现指因遇到一些事或看...",  
              "元字宙": "源于小说《雪崩》的科幻概念,现指在XR(扩展现实)、数字李生、区块链和AI...",  
              "绝绝子": "该词流行于某网络节目,节目中一些粉丝用“绝绝子”为选手加油。多用于赞美...",  
              "躺平": "该词指人在面对压力时,内心再无波澜,主动放弃,不做任何反抗。“躺平”更像...",  
              "伤害性不高,侮辱性极强": "一段网络视频中,两名男子相互夹菜,而同桌的另一名女子...",  
              "我看不懂,但我大受震撼": "源自导演李安在纪录片《打扰伯格曼》..."}  

# 字典常用方法  
# dict.keys()   返回所有键  
# dict.values() 返回所有值  
# dict.items()  返回所有键值对  

slang_dict["强国有我"] = "源自建党百年天安门广场庆典上青年学子的庄严宣誓。" # 新增键/值  
del slang_dict["强国有我"]  # 删除键值  

query = input("请输入需要查询的数据:")  
if query in slang_dict:  
    print("查询成功:" + slang_dict[query])  
else:  
    print("数据库中没有这该词条!")  
    print("数据库共 " + str(len(slang_dict)) + " 条数据。")  


# 如果有相同键(需不可变类型),可以用元组tuple(不可变,但和列表类似)加以区分  
# 不能使用列表作为键,因为列表可变  
# 由于元组不可变,所以append,remove等函数不可用  

contacts = {("张三", 24): "18588888888",  
            ("张三", 28): "18586666666"}