阅读 206

Python字典常用操作

这是我参与更文挑战的第 9 天,活动详情查看: 更文挑战

回顾复习

字典是可变数据类型,由键值对形式出现。

  • 键对象,是唯一的,具有hashable特点,因此只能允许数字、字符串和元组形式展现。

  • 值对象,是可以允许任意python数据类型,并且可以重复。

  • 可以通过键对象实现快速获取、删除、更新对应的值对象

image.png

1.创建字典

1.1 使用花括号创建

{} 花括号是创建字典最常用的方式

    Dict = {key1:value1,key2:value2,...}
复制代码
# 创建空字典

DICT = {}

# 创建一个字典

info = {"name":"JueJing","address":"JueJing.cn"}

复制代码

image.png

1.2 使用dict()创建

我们可以通过dict()函数来创建字典

#使用dict()创建空字典

DICT = dict()

# 创建info,方法一

info = dict(name="JueJing",address="JueJing.cn")

# 创建info,方法二
info2 = dict([("name","JueJing"),("address","JueJing.cn")])

print (info)
print (info2)
复制代码

image.png

1.3 使用zip()创建

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

*zip() 可以将元组解压为列表。

zip([iterable, ...])
复制代码

参数:iterabl -- 一个或多个迭代器

# 两个列表
n = ["name","age"]

a = ["Tom",10]

# zip()函数生成元组
t = zip(n,a)

# dict()生成字典
Dict = dict(t)

# 打印字典
print(Dict)
复制代码

image.png

1.4 使用fromkeys创建

我们可以使用dict.fromkeys()创建为空字典

Dict = dict.fromkeys(["name","age"])

print(Dict)

复制代码

运行结果

2.访问字典

2.1 元素访问

通过键对象来获取值对象,若不存在则抛出异常。

# 创建字典info
>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> info["name"]
'JueJing'
>>> info["address"]
'JueJing.cn'
>>> info["na"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'na'
>>>

复制代码
2.2 使用get()来访问

通过python 字典内置的get()函数来获取值对象,推荐使用。

get()其优点有如下

  • 指定键对象不存在,则返回None
  • 可以设定指定键不存在时默认返回的对象。
>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> info.get("name")
'JueJing'
>>> info.get("address")
'JueJing.cn'
>>> info.get("na","a people")    # 键对象“na”不存在,则返回指定的对象"a people"
'a people'
>>>
复制代码
2.3 使用items()函数

items()函数列出所有的键值对。

>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> info.items()
dict_items([('name', 'JueJing'), ('address', 'JueJing.cn')])
>>>
复制代码
2.4 使用可keys(),values()函数

keys()函数,列出所有的键对象列表,并返回列表的形式呈现。

value()函数,列式所有的值对象,并返回列表的形式呈现

>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> info.keys()
dict_keys(['name', 'address'])
>>> info.values()
dict_values(['JueJing', 'JueJing.cn'])
>>>
复制代码

3.基本用法

字典是属于可变数据类型,因此可以对它进行添加、修改和删除操作。

3.1 字典元素添加

给字典新增“键值对”。

  • 如果"键"已经存在,则覆盖旧的键值对
  • 如果“键”不存在,则新增“键值对”
>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> info["job"]= "programmer"  # "job"键对象,字典中不存在,则把"job"="programmer"键值对象添加到字典中
>>> info
{'name': 'JueJing', 'address': 'JueJing.cn', 'job': 'programmer'}
>>>
复制代码

image.png

3.2. 字典元素删除

字典中元素的删除有方法如下。

删除字典方法汇总

1.使用del()函数,删除指定的键值对象

>>> info = {'name': 'JueJing', 'address': 'JueJing.cn', 'job': 'programmer'}
>>> del(info["name"])
>>> info
{'address': 'JueJing.cn', 'job': 'programmer'}
>>> del info["job"]
>>> info
{'address': 'JueJing.cn'}
>>> del info  #删除字典
>>> info
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'info' is not defined
>>>
复制代码

image.png

2.使用clear()函数,删除所有键值对象

>>> info = {'name': 'JueJing', 'address': 'JueJing.cn', 'job': 'programmer'}
>>> info.clear()
>>> info
{}
>>>

复制代码

3.使用pop()函数,删除指定键值对象,并返回值对象

>>> info = {'name': 'JueJing', 'address': 'JueJing.cn', 'job': 'programmer'}
>>> info.pop("address")
'JueJing.cn'
>>> info
{'name': 'JueJing', 'job': 'programmer'}
>>>

复制代码

4.使用popitem()函数,随机删除和返回改键值对

字典是无序可变序列,因此没有第一个元素、最后一个元素的概念。

popitem弹出随机的项,因为字典没有“最后的元素”或者其他有关顺序的概念,

若想一个接一个地移除并处理项,这个方法非常有效。(因为不用首先获取键的列表)

>>> info = {'name': 'JueJing', 'address': 'JueJing.cn', 'job': 'programmer'}
>>> info.popitem()
('job', 'programmer')
>>> info.popitem()
('address', 'JueJing.cn')
>>> info.popitem()
('name', 'JueJing')
>>> info.popitem()                   # 直到把字典删除完,会抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'
>>> info
{}
>>>
复制代码
3.3. 字典元素修改

使用update()函数进行更新字典中的内容

  • 将新字典中所有键值对象全部添加到旧字典中
  • 如果key有重复的,则直接覆盖
>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> newinfo = {"name":"JueJing2","hobby":"reading"}
>>> info.update(newinfo)
>>> info
{'name': 'JueJing2', 'address': 'JueJing.cn', 'hobby': 'reading'}
>>>

复制代码

新key

key值重复

5.其他操作

  • 计数键值对个数

使用len()函数来计算字典的键值对个数

>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> len(info)
2
复制代码
  • 检查一个键对象,是否在字典中

    key in dict

>>> info = {"name":"JueJing","address":"JueJing.cn"}
>>> "name"in info
True
>>> "na"in info  #键对象不在字典中,则返回False
False
>>>
复制代码

总结

字典是我们日常工作中使用最多的数据类型之一。

以上基本操作是我们必须要掌握且熟练运用的。

好啦,以上是本期内容,欢迎大佬评论区指正。

我是正在学习python小白,盆友圈的小可爱,下次见~

文章分类
后端
文章标签