云边日落 相顾无相识,长歌怀采薇。 (唐·王绩·野望)
博主 云边日落
渝ICP备2021002886号-1渝公网安备50022502000591号博主 11月5日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 4 年 152 天 20 小时 5 分

Powered by Typecho & Sunny

2 online · 43 ms

Title

Python字典

酒笙

·

·

320次阅读
python
Article
⚠️ 本文最后更新于2021年11月17日,已经过了1100天没有更新,若内容或图片失效,请留言反馈
Test

字典的基本定义

 字典可以看成是一种列表型的数据结构,也是可以容纳很多其它数据类型的容器,但字典当中的元素使用 键-值 来表示的,而且 键-值 成对出现,键与值之间存在的关系可以描述为,通过键取值(这个是字典的核心概念,就像通过部首查字典一样的)。
 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号 (,) 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

♾️ python 代码:
# my_dict 是一个变量名
my_dict = {键1:值1,键2:值2......}

Test
 其中字典的值即上述格式中的 值1、值2 可以是数值、字符串、列表、元组等内容。
 我们用一个实例来看一下具体内容:

♾️ python 代码:
dict = {'name': '酒笙','yes' :'优秀','dict' : '依旧'}
print(dict)

这就是一个建议的字典,其中 name就是键,后面的 酒笙就是值,我们来看一下输出内容:

♾️ python 代码:
{'name': '酒笙', 'yes': '优秀', 'dict': '依旧'}

我们再来对字典建立一下认知,字典就是建立了键到值的一一对应关系。也就是说,键后面跟的是值,
比如说,拼音对对应的汉字就是一个字典,拼音就是键,汉字就是值。

访问字典里面的值

 字典是通过键值定义的,通过键去获取值,因此字典中不允许出现重复的键。获取字典中值的语法格式为:

♾️ python 代码:
my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
print(my_dict["red"])

输出内容如下:

♾️ python 代码:
红色

仔细的观察你会发现,他的获取方式和列表很相似,只不过是把索引的下标换成了键,有个这个思路,相信你很快就能掌握字典了。

修改字典

 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对,我们来看一下基本语法格式:

♾️ python 代码:
my_dict[键] = 值

我们来看一下具体演示:

♾️ python 代码:
my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色","name" : "土豆"}
my_dict["name"] = "酒笙"
print(my_dict)

输入内容如下:

♾️ python 代码:
{'red': '红色', 'green': '绿色', 'blue': '蓝色', 'name': '酒笙'}

我们可以看到 name 后面的值已经被修改为 酒笙了。
 接下来我们来看一下增加字典里面的键值。语法格式和修改的一样。

♾️ python 代码:
my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色","name" : "土豆"}
my_dict["yse"] = "哈哈"
print(my_dict)

输出内容如下:

♾️ python 代码:
{'red': '红色', 'green': '绿色', 'blue': '蓝色', 'name': '土豆', 'yse': '哈哈'}

删除元素

如果想要删除字典中某一个具体的元素,只需要通过 del 关键字加上 my_dict[待删除元素的键] 即可完成。

♾️ python 代码:
code here...my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色","name" : "土豆"}
del my_dict["red"]
print(my_dict)

输出内容如下:

♾️ python 代码:
{'green': '绿色', 'blue': '蓝色', 'name': '土豆'}

使用 del 可以删除指定的元素,那么使用 clear 方法就可以删除整个字典,返回一个空字典。

♾️ python 代码:
my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色","name" : "土豆"}
my_dict.clear()
print(my_dict)

输出内容如下:

♾️ python 代码:
{}

字典的补充知识

 在上面,我们已经生成了一个空字典,那么不难猜,生成空字典的语法应该是这样的。

♾️ python 代码:
tuple = {}
#tuple是字典的变量名。可以任意取

空字典一般是用来进行逻辑站位的,这里呢我们不需要过多的理解。

字典的遍历

 字典也需要遍历输出里面的每一个元素,对于字典咱已经知道是由键值对组成,那对应的遍历输出内容就有所有键值,所有键,所有值。

遍历字典的键 - 值

 调用字典的 items 方法可以获取字典的所有键值,例如下述代码:

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

print(my_dict.items())

运行的结果如下:

♾️ python 代码:
dict_items([('red', '红色'), ('green', '绿色'), ('blue', '蓝色')])

 我们再来看一下循环输出字典。

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 直接对 my_dict 进行遍历
for item in my_dict:
    print(item)
print("-------"*20)
# 遍历 my_dict 的 items 方法
for item in my_dict.items():
    print(item)
print("-------"*20)
# 遍历 my_dict 的 items 方法,并用 key 与 value 接收
for key,value in my_dict.items():
    print("键:{},值:{}".format(key,value))

我们来看一下运行结果:

♾️ python 代码:
red
green
blue
------------------------------------------------------
('red', '红色')
('green', '绿色')
('blue', '蓝色')
-----------------------------------------------------
键:red,值:红色
键:green,值:绿色
键:blue,值:蓝色

这里建议反复临摹,动手操作,光看是不会有任何时间收获的。

遍历字典的键

上文学习到的是遍历字典的键值,你可以直接通过 keys 方法获取字典的所有键,例如下述代码:

♾️ python 代码:
my_dict = {"red": "红色","green": "绿色","blue": "蓝色"}

for key in my_dict.keys():
    print(key)

然后运行结果如下:

♾️ python 代码:
red
green
blue

遍历字典的值

竟然有遍历键,那么自然会有遍历字典的值,和上面的方法差不多,至多是方法变了。遍历字典的值用的会 values 方法,下面我们来看一下具体代码.

♾️ python 代码:
my_dict = {"red": "红色","green": "绿色","blue": "蓝色"}

for key in my_dict. values ():
    print(key)

运行结果如下:

♾️ python 代码:
红色
绿色
蓝色

字典与其他数据类型

 字典就像是一个大合集,它可以容纳任意的数据类型,同时也可以容纳它自身,也就是可以字典包含字典,也可以列表包含字典等等。
我们来直观的看一下,列表包含字典。

♾️ python 代码:
my_list = [{"name": "酒笙", "酒": "笙"},
           {"name": "酒笙", "酒" : "笙"}]
print(my_list)
#索引0好元素
print(my_list[0])

我们来看一下运行结果:

♾️ python 代码:
[{'name': '酒笙', '酒': '笙'}, {'name': '酒笙', '酒': '笙'}]
{'name': '酒笙', '酒': '笙'}

我们可以看到, 0 好元素就是一个字典。
后面的字典嵌套列表,字典嵌套字典就交给你们自己动手啦,都很简单,一定记得动手去做哟。

字典的方法

已下内容皆为引用。

序号方法名作用
1radiansdict.clear() 删除字典内所有元素
2radiansdict.copy()返回一个字典的浅复制
3radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4radiansdict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict如果键在字典dict里返回true,否则返回false
6radiansdict.items()以列表返回可遍历的(键, 值) 元组数组
7radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表
8radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9radiansdict.update(dict2)把字典dict2的键/值对更新到dict里
10radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表
11 popitem()随机返回并删除字典中的最后一对键和值。

这里提及几个特殊的方法.

pop 方法

该方法用于删除字典元素,语法格式如下:

♾️ python 代码:
ret_value = dict.pop(key[,default])

既然已经写出了这种标准格式,那先补充一下语法格式的规范,例如 dict.pop(key[,default]) 中 key 表示必填参数,[] 包括的参数为非必填参数,这样你可以理解上述语法格式内容是什么了.

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 删除指定项
ret_value = my_dict.pop('red')
# 输出被删除的红色
print(ret_value)
# 查看字典 {'green': '绿色', 'blue': '蓝色'}
print(my_dict )

在使用 pop 方法的时候如果找到 key,就会删除该键值对,如果找不到 key 会返回 defalut 设置的值,如果该值没有设置,会报错。

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 删除指定项,如果没有设置找不到返回的值,直接报错
ret_value = my_dict.pop('red2')

# 删除指定项,找不到 key1 返回后面设置的值
ret_value = my_dict.pop('red1',"找不到返回的值")

get 方法

get 方法用于通过键获取值,如果不存在可以设置返回一个默认值,例如下述代码:

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}
print(my_dict.get("red"))  # 返回红色
print(my_dict.get("red1")) # 返回 None

print(my_dict.get("red1","设置一个找不到返回的默认值"))

setdefault 方法

setdefault 方法与 get 方法用途基本一致,区别是当 setdefault 搜寻不到指定键时,会自定将键值插入字典,例如下述代码:

♾️ python 代码:
my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}
print(my_dict.setdefault("red")) # 返回红色
print(my_dict.setdefault("orange")) # 返回 None
print(my_dict) # 输出 {'red': '红色', 'green': '绿色', 'blue': '蓝色', 'orange': None}

最后一行代码输出的结果中已经包含了键 orange 与值 None,你可以在使用 dict.setdefault("orange","橙色") 测试一下默认值。

fromkeys 方法

该方法目的是创建一个字典,语法格式如下:

♾️ python 代码:
# 注意该方法直接通过 dict 调用
# seq 是一个序列,可以为元组,也可以是字典
my_dict = dict.fromkeys(seq)

接下来就通过该方法实际创建一个字典。

♾️ python 代码:
my_list = ['red', 'green']

my_dict = dict.fromkeys(my_list)
# 以下内容输出 {'red': None, 'green': None}
print(my_dict)

my_dict1 = dict.fromkeys(my_list, "字典的值")
print(my_dict1)

 其他方法可以点击上方表格进行学习,这里就不再赘述了。记得本章的学习一定要动手,只是看是学不到什么的哟。

现在已有 1 条评论,3 人点赞
Comment:共1条
发表
  1. 头像
    @
    小? ?
    作者太有心了,爱了爱了
    · Android · Chrome · 中国福建省电信

    👍

    💖

    💯

    💦

    😄

    🪙

    👍 0 💖 0 💯 0 💦 0 😄 0 🪙 0
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主