乐趣区

关于python:小手一抬学Python-Python字典已经掌握了附源码

查字典怎么查,Python 字典就怎么用

曾经学完了列表与元组,那这两个都是依照顺序排列的,所以能够用索引取到值,本篇博客要学习的是字典,由上文可知,字典必定就是不能依照索引取到值,就是没程序,非序列的数据结构。

字典的基本操作

字典的定义

字典能够看成是一种列表型的数据结构,也是能够包容很多其它数据类型的容器,但字典当中的元素应用“键 - 值”来示意的,而且“键 - 值”成对呈现,键与值之间存在的关系能够形容为,通过键取值(这个是字典的外围概念,就像通过部首查字典一样的)。

字典的语法格局如下:

# my_dict 是一个变量名
my_dict = {键 1: 值 1, 键 2: 值 2......}

其中字典的值即上述格局中的 值 1 值 2 能够是数值、字符串、列表、元组等内容。

例如能够通过字典来示意一个中英对照表。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
print(my_dict)
print(type(my_dict))

输入后果为:

{'red': '红色', 'green': '绿色', 'blue': '蓝色'}
<class 'dict'>

当初须要对字典再次建设一下认知,字典就是建设了键到值的一一对应关系。

获取字典的值

字典是通过键值定义的,通过键去获取值,因而字典中不容许呈现反复的键。获取字典中值的语法格局为:

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
print(my_dict["red"])

认真看十分相似列表中元素的获取,只是将索引地位替换为了

字典中减少元素、批改元素、删除元素

减少元素

在字典中减少一个元素非常简单,只须要通过下述语法格局即可实现。

my_dict[键] = 值

例如在方才的色彩翻译字典中在减少一个橙色的对应键值,代码如下:

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict["orange"] = "橙色"

print(my_dict)

如果心愿在字典中减少更多的键值对应关系,顺次编写上来即可。

批改元素

批改字典中元素记住精确的应该叫做批改元素的值,例如将代码中 red 对应的值 红色 批改为 浅红色,通过下述代码实现。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict["red"] = "浅红色"

print(my_dict)

通过 my_dict[要批改的键] = 新的值 来进行批改即可实现工作。

删除元素

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

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
del my_dict["red"]

print(my_dict)

以上内容能够删除特定元素,应用字典的一个 clear 办法,能够将字典清空。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
my_dict.clear()

print(my_dict)

以上内容会输入 {} 该符号示意空字典。

除了将字典清空以外,还能够间接将字典变量删除。

my_dict = {"red": "红色", "green": "绿色", "blue": "蓝色"}
del my_dict

print(my_dict)

删除字典变量之后,在打印 my_dict 程序间接报错,提醒 name 'my_dict' is not defined 变量未定义,在删除字典的时候肯定要留神别误删整个字典,除非程序要求这么实现。

字典的补充常识

空字典

方才其实曾经提及了一个空字典是如何创立的,建设空字典的语法如下:

my_dict = {}

空字典个别用于逻辑占位,好简单啥叫逻辑占位,就是先申明前面在进行扩大的一个小技巧。

获取字典元素数量

列表与元组都能够应用 len 来获取元素数量,同样的办法实用于字典,语法格局如下:

my_dict_length = len(my_dict)

空字典的元素数量为 0,能够进行尝试一下。

字典可读性书写

在很多时候一个程序不是由一个人能够独立实现,须要一个团队进行配合,如何让本人的代码可读性(他人能看懂)变高在代码编写的时候就变的十分重要了。字典为了减少可读性,倡议一行定义一个元素。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

print(my_dict)

字典的遍历

字典也须要遍历输入外面的每一个元素,对于字典咱曾经晓得是由键值对组成,那对应的遍历输入内容就有所有键值,所有键,所有值。

遍历字典的键 – 值

调用字典的 items 办法能够获取字典的所有键值,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

print(my_dict.items())

该内容输出为:

dict_items([('red', '红色'), ('green', '绿色'), ('blue', '蓝色')])

接下来循环输入字典内容,有几种不同的写法,先尝试编写如下代码,在进行知识点学习。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

# 间接对 my_dict 进行遍历
for item in my_dict:
    print(item)

# 遍历 my_dict 的 items 办法
for item in my_dict.items():
    print(item)

# 遍历 my_dict 的 items 办法,并用 key 与 value 接管
for key,value in my_dict.items():
    print("键:{},值:{}".format(key,value))

以上三种输入内容请自行查阅。

  1. 第一种输入的是所有的
  2. 第二种将每个键值对当做一个元组输入;
  3. 第三种通过变量与元组之间的赋值间接将键与值输入。

对于变量与元组之间的赋值能够参考上司代码:

a,b = (1,2)
print(a)
print(b)

留神通过该形式进行变量的赋值肯定要将左侧的变量与右侧元组中的元素做好对应,一个变量对应元组中的一项,程序也对应。如果不对应就会呈现下述谬误 ValueError: too many values to unpack

遍历字典的键

上文学习到的是遍历字典的键值,你能够间接通过 keys 办法获取字典的所有键,例如下述代码:

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

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

遍历字典的值

有 keys 办法获取键,对应的就是通过 values 获取所有值。
这个中央因为和上述内容太类似了,如果想成为一个合格的程序员,学习初期每天的代码量是不能缩小的,所以本局部留给你啦。

字典与其余数据类型的联合

先要意识到字典是一个容器,它能够蕴含任意数据类型。字典也是一种数据类型,它能够被列表与字典自身等容器类蕴含。
很绕是吧,其外围是非常简单的,看完代码你就明确了。

列表嵌套字典

间接看成果,一个列表能够嵌套字典。

my_list = [{"name": "橡皮擦", "age": 18},
           {"name": "大橡皮擦", "age": 20}]
print(my_list)
print(my_list[0])

字典嵌套列表

字典中元素的值能够是列表,具体如下:

my_dict = {"colors": ["红色","绿色"],
           "nums": [1,2,3,4,5],
           "name": ["橡皮擦"]}
print(my_dict)

字典嵌套字典

字典的值能够为任意数据类型,那天然能够是字典类型,所以下述代码你应该能够浏览。

my_dict = {"colors": {"keys": ["红色", "绿色"]},
           "nums": [1, 2, 3, 4, 5],
           "name": ["橡皮擦"]}
print(my_dict)

以上内容都是非常简单的写法,总结一句话都是套娃。

字典的办法

字典有一些非凡的办法须要独自阐明一下,如果想要查看字典所有的办法,根据应用 dir 内置函数调用。

fromkeys 办法

该办法目标是创立一个字典,语法格局如下:

# 留神该办法间接通过 dict 调用
# seq 是一个序列,能够为元组,也能够是字典
my_dict = dict.fromkeys(seq)

接下来就通过该办法理论创立一个字典。

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)

第一种形式发现输入的字典中所有值为 None(Python 中的非凡值,相当于空),该内容是因为没有设置字典默认值,缺省为 None,如果须要在定义字典的时候初始化该值,在办法中的第二个参数赋值即可。

get 办法

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

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 搜查不到指定键时,会自定将键值插入字典,例如下述代码:

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","橙色") 测试一下默认值。

pop 办法

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

ret_value = dict.pop(key[,default])

既然曾经写出了这种规范格局,那先补充一下语法格局的标准,例如 dict.pop(key[,default])key 示意必填参数,[] 包含的参数为非必填参数,这样你能够了解上述语法格局内容是什么了。

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

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

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

my_dict = {"red": "红色",
           "green": "绿色",
           "blue": "蓝色"}

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

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

这篇博客的总结

字典同列表、元组一样都是 Python 中十分重要的数据类型,字典因为键值对的概念存在导致其应用场景更多,初学阶段橡皮擦给大家的意见就是好好的打打代码,先建设对 Python 的整体认知,滚雪球学 Python,这只是第一遍滚。

最初一碗毒鸡汤

我曾天真地认为金钱是万能的,起初才发现,金钱不是万能的,是无所不能的。O(∩\_∩)O 哈哈~

退出移动版