Python数据结构之字典

本文介绍了Python字典的基本操作,包括定义、访问值、增加元素、修改元素、删除元素以及遍历字典的方法。字典是一种非序列化的数据结构,以键值对形式存储,支持通过键来快速获取值。示例展示了如何创建、修改和删除字典元素,以及如何遍历字典的键、值和键值对。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表与元组是依次排列的,可以称作为序列化数据结构。只要知道元素的特定位置,即可以使用索引取得元素的内容。Map是非序列化的数据结构。

1,定义字典

字典也是一个列表型的数据结构,但是他的元素是使用“键-值方式配对存储,在操作时使用取得的内容,定义字典是将键-值放在大括号{}内。

name_dict = {键1:值1,键2:值2 ....键n:值n}

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
print(fruits)
print(noodles)
# 列出字典的类型
print("字典fruits数据类型是:",type(fruits))

 对应的输出结果为:

{'西瓜': 15, '橡胶': 12, '水蜜桃': 45}
{'牛肉面': 15, '肉丝面': 12, '阳春面': 12}
字典fruits数据类型是: <class 'dict'>

2,列出字典元素的值

字典的元素是使用“键-值方式配对存储,如果想要获得元素的值,可以将当做索引方式进行处理,因此字典中的值不能包括重复的元素。

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
print("西瓜一千克:",fruits["西瓜"])
print("牛肉面一碗:",noodles["牛肉面"])
# 列出字典的类型
print("字典fruits数据类型是:",type(fruits))

 对应的输出结果为:

西瓜一千克: 15
牛肉面一碗: 15
字典fruits数据类型是: <class 'dict'>

3,增加字典的元素

针对字典,可以通过如下的方式添加字典元素

name_dict[键] = 值        

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
# 增加水果香蕉
print("增加水果香蕉前")
print(fruits)
fruits["香蕉"]=55
print("增加水果香蕉后")
print(fruits)

 对应的输出结果为:

增加水果香蕉前
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45}
增加水果香蕉后
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45, '香蕉': 55}

4,更改字典的元素

针对字典中元素的更改可以采用直接的方式

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
# 增加水果香蕉
print("增加水果香蕉前")
print(fruits)
fruits["香蕉"]=55
print("增加水果香蕉后")
print(fruits)
fruits["香蕉"]=54
print("香蕉发生了变化")
print(fruits)

 对应的输出结果为:

增加水果香蕉前
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45}
增加水果香蕉后
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45, '香蕉': 55}
香蕉发生了变化
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45, '香蕉': 54}

5,删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显式删除一个字典用del命令,如下实例:

del name_dict[键]

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
# 增加水果香蕉
print("增加水果香蕉前")
print(fruits)
fruits["香蕉"]=55
print("增加水果香蕉后")
print(fruits)
print("删除香蕉元素")
del fruits["香蕉"]
print(fruits)

对应的输出结果为:

增加水果香蕉前
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45}
增加水果香蕉后
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45, '香蕉': 55}
删除香蕉元素
{'西瓜': 15, '橡胶': 12, '水蜜桃': 45}

删除字典的所有元素

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
print(noodles)
print("清除所有的面条类")
noodles.clear()
print(noodles)

对应的输出结果为:

{'牛肉面': 15, '肉丝面': 12, '阳春面': 12}
清除所有的面条类
{}

删除字典

del name_dict

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
print(noodles)
print("清除所有的面条字典")
del noodles
print(noodles)

 对应的输出结果为:

{'牛肉面': 15, '肉丝面': 12, '阳春面': 12}
清除所有的面条字典
Traceback (most recent call last):
  File "/home/ss/learn/cpp/map_demo.py", line 6, in <module>
    print(noodles)
NameError: name 'noodles' is not defined

6,建立一个空的字典

name_dict={}:空字典的建立

new_dict = name_dict.copy():字典进行复制

length = len(name_dict):字典 元素的数量

key in name_dict :可以验证键key 在字典name_dict中

7,字典元素的遍历 

针对字典键值遍历,Python提供了items()方法,可以让我们取得键值配对的元素。

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
for key ,value in noodles.items():
    print("{}:{}".format(key,value))

 对应的输出结果为:

牛肉面:15
肉丝面:12
阳春面:12

遍历字典的键

有时候我们不想获得字典的值,只想要,Python提供了keys()方法,可以获得键的内容。

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
for key in noodles.keys():
    print("{}".format(key))

 对应的输出结果为:

牛肉面
肉丝面
阳春面

遍历字典的值

有时候我们不想获得字典的,只想要,Python提供了values()方法,可以获得键的内容。

fruits  =  {"西瓜":15,"橡胶":12,"水蜜桃":45}
noodles = {"牛肉面":15,"肉丝面":12,"阳春面":12}
for value in noodles.values():
    print("{}".format(value))

 对应的输出结果为:

15
12
12

8,字典内列表元素

在Python的应用中也允许将在列表放在字典中。这时列表是将字典的某个键的值。需要使用嵌套循环和字典的方法items()外层循环是取得字典的键内层循环则是将含列表的值拆解。下列是定义sports字典的实例。

sports = {
    "Curry":["篮球","美式足球"],
    "Durant":["棒球"],
    "James":["美式足球","棒球","篮球"]
}
for sport,favorites_sport in sports.items():
    print("%s 喜欢的运动是" %sport)
    for favorite in favorites_sport:
        print(" ",favorite)

 对应的输出结果为:

Curry 喜欢的运动是
  篮球
  美式足球
Durant 喜欢的运动是
  棒球
James 喜欢的运动是
  美式足球
  棒球
  篮球

9,fromkeys()

name_dict = dict.fromkeys(seq[,value]):通过序列化建立字典

seq1 = ["name", "city"]
list_dict = dict.fromkeys(seq1)
print("list_dict:", list_dict)

list_dict2 = dict.fromkeys(seq1,"chicago")
print("list_dict2:", list_dict2)

 对应的输出结果为:

list_dict: {'name': None, 'city': None}
list_dict2: {'name': 'chicago', 'city': 'chicago'}

10,get()

get()可以搜索字典的键,如果简直存在,则返回键的值,如果不存在,则返回默认值。

ret_value = dict.get(key,default)

fruits={"Apple":20,"orange":25}
ret_value1 = fruits.get("orange")
print("Value = ",ret_value1)
ret_value2 = fruits.get("orange1",10)
print("Value = ",ret_value2)

 对应的输出结果为:

Value =  25
Value =  10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值