一篇文章带你了解python字典基础

Dylan
Dylan
发布时间:2026-10-15| 5人浏览过
原创

本文系统介绍Python字典的核心概念与常用操作方法。内容涵盖字典的定义、键值对特性、唯一性与不可变性要求,以及增加、查找、修改和删除元素的具体实现。同时详细解析了字典的遍历技巧(包括items、keys、values方法)及其他辅助函数如clear、copy和fromkeys的使用,帮助读者掌握字典在Python编程中的基础应用。

1. 字典基础知识

字典是一种可变且无序的集合类型,其核心结构由键值对(key-value pairs)构成,能够存储多种数据类型的元素。在Python中,字典使用大括号({})来标识起始和结束,各元素之间通过半角逗号(,)进行分隔。每个键值对包含一个键(key)和一个值(value),两者由冒号(:)分隔,例如“wky”:28。字典体现了一种典型的一对一映射关系的数据结构。

  • 可以将字典视为一种“映射”结构,即键(作为索引)与值(具体数据)之间的一一对应关系。

字典的基本格式表示


>>> #空字典
>>> {}
{}
>>> #定义一个元素的字典变量
>>> d1 = {"wky":28}
>>> len(d1)
1
>>> d2 = {"wky":1,"lyj":2}
>>> len(d2)
2
>>> 

字典的键、值设置要求

1)键的设置要求

(1)唯一性:在同一个字典对象中,所有的键必须保持唯一。


>>> d3={1:"wky",2:"lyj",2:"lyj"}
>>> len(d3)
2
>>> d3={1:"wky",2:"lyj",2:"wa"}
>>> len(d3)
2

在定义字典变量时,即使Python允许输入重复的键,但在实际调用时,系统只会保留最后一个具有相同键的元素。为了避免潜在问题,建议在定义字典对象时严格确保每个元素的键具有唯一性。

(2)不可变性:在字典的使用过程中,元素的键不能直接进行修改。


>>> d2={"wkys":1,"lyj":2}    #wky错误写成wkys

2)值的设置要求

2. 字典元素增加

1.利用赋值给字典增加元素


>>> d2 = {"wky":1,"lyj":2}
>>> d2["wa"]=3
>>> d2
{'wky': 1, 'lyj': 2, 'wa': 3}
>>> 

上述通过赋值增加元素的前提是:字典中不存在该新增的键;如果键已存在,则会修改指定键对应的值。

列表变量带中括号与字典变量带中括号之间的区别: (1)列表:L[x]=value的方法,修改对应的元素,x为指定的下标 (2)字典:D[x]=value的方法,为字典增加新元素,k为指定的键,且k在字典对象中不存在。

2.利用setdefault()方法给字典增加元素

setdefault()使用格式为D.setdefault(k[,d])。D代表字典对象,k代表新增键,d代表新增键对应的值(若不提供值,则默认值为None)


>>> d1={"wky":1,"lyj":2}
>>> d1.setdefault("wa",10)
10
>>> d1
{'wky': 1, 'lyj': 2, 'wa': 10}
>>> d1.setdefault('wake')
>>> d1
{'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> 

用setdefault()方法新增键值对时,若指定键已经存在,则只显示已经存在键的值。

3. 字典值查找

1.字典名+[key]查找


>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2["lyj"]
2

若指定的键在字典对象中不存在会报错。


>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2['w']
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    d2['w']
KeyError: 'w'         #提示键出错

2.利用get()方法查找

get()方法使用格式D.get(k[,d]),D代表字典对象,k为指定的键,d为键对应的值。


>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2.get("wky")
1
>>> #查找字典中不存在的键
>>> d2.get('w')
>>> 

get()方法指定的键在字典中不存在时返回空值。

4. 字典值修改

1.利用赋值修改键对应的值


>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2["wake"]=99
>>> d2
{'wky': 1, 'lyj': 2, 'wa': 10, 'wake': 99}
>>> 

2.利用update()方法修改键对应的值

update()方法的使用格式D.update(d1),D代表要更新的字典对象,d1为提供更新内容的字典。若d1中提供的键在D中,则更新D里对应的键值,若不存在,则增加键值对。

1)更新字典里键对应的值


>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d2={"wky":10,"wake":89}
>>> d1.update(d2)
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}

2)新增键值对


>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None}
>>> d1.update({"wakeyo":100})
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100}

5. 字典元素删除

1.利用del函数删除


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100}
>>> del(d1["wakeyo"])
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> 

2.利用pop()方法删除

pop()方法使用格式D.pop(k[,d]),D代表字典,k代表需要删除的元素的键,d为键对应的值(可选)。


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> pl=d1.pop('wake')
>>> pl
89
>>> 

3.利用popitem()方法删除

popitem()方法使用格式D.popitme(),D代表字典,随即返回一个键值对元组,并在字典里删除对应的元素。


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> k1,v1=d1.popitem()
>>> k1,v1
('wake', 89)
>>> d1
{'wky': 10, 'lyj': 2, 'wa': 10}
>>> t1=d1.popitem()
>>> t1
('wa', 10)
>>> type(t1)
<class 'tuple'>
>>> 

del函数、pop()方法、popitem()方法若对不存在的元素进行操作时,都将报错。

6. 字典遍历操作

1.遍历所有键值对:

利用items()方法遍历所有键值对

items()方法使用格式D.items(),D代表字典,以元组形式返回字典的所有元素。


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_l in d1.items():
	print(get_l)
#结果	
('wky', 10)
('lyj', 2)
('wa', 10)
('wake', 89)

>>> d1.items()
dict_items([('wky', 10), ('lyj', 2), ('wa', 10), ('wake', 89)])
>>> type(d1.items)
<class 'builtin_function_or_method'>
>>> 

遍历所有键

1)利用字典变量循环遍历


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for gets in d1:
	print(gets)

#结果 wky lyj wa wake

2)利用keys()方法获取字典键


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_l in d1.keys():
	print(get_l)

#结果 wky lyj wa wake

遍历所有值

1)通过键遍历值


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_key in d1:
	print(d1[get_key])

#结果 10 2 10 89

2)利用values()方法获取字典值


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> for get_v in d1.values():
	print(get_v)

#结果 10 2 10 89

7. 字典其他操作方法

1.in成员操作


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> if "wky" in d1.keys():
		print("wky在字典里")
	else:
		print("wky不在字典里")

wky在字典里

2.clear()方法


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> d1.clear()
>>> d1
{}

3.copy()方法


>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> d2=d1.copy()
>>> d2
{'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
>>> id(d1)
2432414090296
>>> id(d2)
2432414587208
>>> d3=d2
>>> id(d3)
2432414587208

通过copy()方法的复制,可以避免字典变量之间直接赋值指向同一个地址。

4.fromkeys()方法

fromkeys()方法使用格式D.fromkeys(iterable),D代表字典,iterable代表列表对象,用于指定字典键,生成的D的键对应的值默认为None。


>>> d1={}.fromkeys(["wky","lyj","wa"])
>>> d1
{'wky': None, 'lyj': None, 'wa': None}
>>> 

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注本站的更多内容!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。