PYTHON基础技能 –  Python字典的18种方法

释放双眼,带上耳机,听听看~!

今天我们来深入探讨一下Python字典(Dictionary)。字典是Python中非常强大且常用的数据结构,它以键值对的形式存储数据,提供了高效的数据访问方式。本文将通过18种方法,帮助你全面理解和掌握Python字典的使用。

1. 创建字典

首先,我们来看看如何创建一个字典。


1
<em>#&nbsp;方法1:使用花括号创建字典</em><br>my_dict&nbsp;=&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;25,&nbsp;'city':&nbsp;'New&nbsp;York'}<br><br><em>#&nbsp;方法2:使用dict()函数创建字典</em><br>my_dict&nbsp;=&nbsp;dict(name='Alice',&nbsp;age=25,&nbsp;city='New&nbsp;York')<br><br><em>#&nbsp;方法3:使用列表推导式创建字典</em><br>my_dict&nbsp;=&nbsp;{key:&nbsp;value&nbsp;for&nbsp;key,&nbsp;value&nbsp;in&nbsp;&#091;('name',&nbsp;'Alice'),&nbsp;('age',&nbsp;25),&nbsp;('city',&nbsp;'New&nbsp;York')]}

2. 访问字典中的值

访问字典中的值非常简单,只需要使用键即可。


1
<em>#&nbsp;方法1:使用方括号访问值</em><br>name&nbsp;=&nbsp;my_dict&#091;'name']<br>print(name)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;Alice</em><br><br><em>#&nbsp;方法2:使用get()方法访问值</em><br>age&nbsp;=&nbsp;my_dict.get('age')<br>print(age)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;25</em>

3. 更新字典中的值

更新字典中的值也很直观,直接赋值即可。


1
<em>#&nbsp;方法1:使用方括号更新值</em><br>my_dict&#091;'age']&nbsp;=&nbsp;26<br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;26,&nbsp;'city':&nbsp;'New&nbsp;York'}</em><br><br><em>#&nbsp;方法2:使用update()方法更新多个键值对</em><br>my_dict.update({'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'})<br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em>

4. 添加新的键值对

添加新的键值对也非常简单,直接赋值即可。


1
<em>#&nbsp;方法1:直接赋值添加新的键值对</em><br>my_dict&#091;'email']&nbsp;=&nbsp;'alice@example.com'<br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco',&nbsp;'email':&nbsp;'alice@example.com'}</em><br><br><em>#&nbsp;方法2:使用update()方法添加多个键值对</em><br>my_dict.update({'phone':&nbsp;'123-456-7890',&nbsp;'address':&nbsp;'123&nbsp;Main&nbsp;St'})<br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco',&nbsp;'email':&nbsp;'alice@example.com',&nbsp;'phone':&nbsp;'123-456-7890',&nbsp;'address':&nbsp;'123&nbsp;Main&nbsp;St'}</em>

5. 删除字典中的键值对

删除字典中的键值对有多种方法。


1
<em>#&nbsp;方法1:使用del语句删除键值对</em><br>del&nbsp;my_dict&#091;'phone']<br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco',&nbsp;'email':&nbsp;'alice@example.com',&nbsp;'address':&nbsp;'123&nbsp;Main&nbsp;St'}</em><br><br><em>#&nbsp;方法2:使用pop()方法删除键值对并返回值</em><br>email&nbsp;=&nbsp;my_dict.pop('email')<br>print(email)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;alice@example.com</em><br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco',&nbsp;'address':&nbsp;'123&nbsp;Main&nbsp;St'}</em><br><br><em>#&nbsp;方法3:使用popitem()方法删除并返回任意一个键值对</em><br>key,&nbsp;value&nbsp;=&nbsp;my_dict.popitem()<br>print(key,&nbsp;value)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;address&nbsp;123&nbsp;Main&nbsp;St</em><br>print(my_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em>

6. 检查键是否存在

检查字典中是否包含某个键有多种方法。


1
<em>#&nbsp;方法1:使用in关键字</em><br>if&nbsp;'name'&nbsp;in&nbsp;my_dict:<br>&nbsp;&nbsp;&nbsp;&nbsp;print('Name&nbsp;is&nbsp;in&nbsp;the&nbsp;dictionary')<br><br><em>#&nbsp;方法2:使用get()方法</em><br>if&nbsp;my_dict.get('age')&nbsp;is&nbsp;not&nbsp;None:<br>&nbsp;&nbsp;&nbsp;&nbsp;print('Age&nbsp;is&nbsp;in&nbsp;the&nbsp;dictionary')

7. 获取字典的所有键

获取字典中的所有键可以使用

1
keys()

方法。


1
keys&nbsp;=&nbsp;my_dict.keys()<br>print(keys)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;dict_keys(&#091;'name',&nbsp;'age',&nbsp;'city'])</em>

8. 获取字典的所有值

获取字典中的所有值可以使用

1
values()

方法。


1
values&nbsp;=&nbsp;my_dict.values()<br>print(values)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;dict_values(&#091;'Alice',&nbsp;27,&nbsp;'San&nbsp;Francisco'])</em>

9. 获取字典的所有键值对

获取字典中的所有键值对可以使用

1
items()

方法。


1
items&nbsp;=&nbsp;my_dict.items()<br>print(items)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;dict_items(&#091;('name',&nbsp;'Alice'),&nbsp;('age',&nbsp;27),&nbsp;('city',&nbsp;'San&nbsp;Francisco')])</em>

10. 遍历字典

遍历字典有多种方式,可以根据需要选择合适的方法。


1
<em>#&nbsp;方法1:遍历键</em><br>for&nbsp;key&nbsp;in&nbsp;my_dict:<br>&nbsp;&nbsp;&nbsp;&nbsp;print(key)<br><br><em>#&nbsp;方法2:遍历值</em><br>for&nbsp;value&nbsp;in&nbsp;my_dict.values():<br>&nbsp;&nbsp;&nbsp;&nbsp;print(value)<br><br><em>#&nbsp;方法3:遍历键值对</em><br>for&nbsp;key,&nbsp;value&nbsp;in&nbsp;my_dict.items():<br>&nbsp;&nbsp;&nbsp;&nbsp;print(f'{key}:&nbsp;{value}')

11. 字典的浅拷贝

字典的浅拷贝可以使用

1
copy()

方法。


1
<em>#&nbsp;方法1:使用copy()方法</em><br>new_dict&nbsp;=&nbsp;my_dict.copy()<br>print(new_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em><br><br><em>#&nbsp;方法2:使用切片操作</em><br>new_dict&nbsp;=&nbsp;dict(my_dict)<br>print(new_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em>

12. 字典的深拷贝

字典的深拷贝可以使用

1
copy

模块中的

1
deepcopy()

方法。


1
import&nbsp;copy<br><br><em>#&nbsp;使用deepcopy()方法</em><br>new_dict&nbsp;=&nbsp;copy.deepcopy(my_dict)<br>print(new_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em>

13. 合并两个字典

合并两个字典可以使用

1
update()

方法或字典解包。


1
<em>#&nbsp;方法1:使用update()方法</em><br>dict1&nbsp;=&nbsp;{'a':&nbsp;1,&nbsp;'b':&nbsp;2}<br>dict2&nbsp;=&nbsp;{'c':&nbsp;3,&nbsp;'d':&nbsp;4}<br>dict1.update(dict2)<br>print(dict1)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'a':&nbsp;1,&nbsp;'b':&nbsp;2,&nbsp;'c':&nbsp;3,&nbsp;'d':&nbsp;4}</em><br><br><em>#&nbsp;方法2:使用字典解包</em><br>dict1&nbsp;=&nbsp;{'a':&nbsp;1,&nbsp;'b':&nbsp;2}<br>dict2&nbsp;=&nbsp;{'c':&nbsp;3,&nbsp;'d':&nbsp;4}<br>merged_dict&nbsp;=&nbsp;{**dict1,&nbsp;**dict2}<br>print(merged_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'a':&nbsp;1,&nbsp;'b':&nbsp;2,&nbsp;'c':&nbsp;3,&nbsp;'d':&nbsp;4}</em>

14. 字典排序

字典本身是无序的,但可以通过某些方法对其进行排序。


1
<em>#&nbsp;方法1:按键排序</em><br>sorted_dict&nbsp;=&nbsp;dict(sorted(my_dict.items()))<br>print(sorted_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco',&nbsp;'name':&nbsp;'Alice'}</em><br><br><em>#&nbsp;方法2:按值排序</em><br>sorted_dict&nbsp;=&nbsp;dict(sorted(my_dict.items(),&nbsp;key=lambda&nbsp;item:&nbsp;item&#091;1]))<br>print(sorted_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;27,&nbsp;'city':&nbsp;'San&nbsp;Francisco'}</em>

15. 字典推导式

字典推导式是一种简洁的创建字典的方式。


1
<em>#&nbsp;方法1:简单的字典推导式</em><br>squares&nbsp;=&nbsp;{x:&nbsp;x**2&nbsp;for&nbsp;x&nbsp;in&nbsp;range(5)}<br>print(squares)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{0:&nbsp;0,&nbsp;1:&nbsp;1,&nbsp;2:&nbsp;4,&nbsp;3:&nbsp;9,&nbsp;4:&nbsp;16}</em><br><br><em>#&nbsp;方法2:带条件的字典推导式</em><br>even_squares&nbsp;=&nbsp;{x:&nbsp;x**2&nbsp;for&nbsp;x&nbsp;in&nbsp;range(5)&nbsp;if&nbsp;x&nbsp;%&nbsp;2&nbsp;==&nbsp;0}<br>print(even_squares)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{0:&nbsp;0,&nbsp;2:&nbsp;4,&nbsp;4:&nbsp;16}</em>

16. 字典的默认值

使用

1
defaultdict

可以为字典设置默认值。


1
from&nbsp;collections&nbsp;import&nbsp;defaultdict<br><br><em>#&nbsp;方法1:使用defaultdict设置默认值</em><br>default_dict&nbsp;=&nbsp;defaultdict(int)<br>default_dict&#091;'a']&nbsp;+=&nbsp;1<br>print(default_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;defaultdict(&lt;class&nbsp;'int'&gt;,&nbsp;{'a':&nbsp;1})</em><br><br><em>#&nbsp;方法2:自定义默认值</em><br>default_dict&nbsp;=&nbsp;defaultdict(lambda:&nbsp;'Default&nbsp;Value')<br>print(default_dict&#091;'b'])&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;Default&nbsp;Value</em>

17. 字典的嵌套

字典可以嵌套使用,形成更复杂的结构。


1
<em>#&nbsp;方法1:简单的嵌套字典</em><br>nested_dict&nbsp;=&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;'person1':&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;25},<br>&nbsp;&nbsp;&nbsp;&nbsp;'person2':&nbsp;{'name':&nbsp;'Bob',&nbsp;'age':&nbsp;30}<br>}<br>print(nested_dict)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;{'person1':&nbsp;{'name':&nbsp;'Alice',&nbsp;'age':&nbsp;25},&nbsp;'person2':&nbsp;{'name':&nbsp;'Bob',&nbsp;'age':&nbsp;30}}</em><br><br><em>#&nbsp;方法2:访问嵌套字典中的值</em><br>name&nbsp;=&nbsp;nested_dict&#091;'person1']&#091;'name']<br>print(name)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;Alice</em>

18. 字典的高级用法

字典还有一些高级用法,比如使用

1
Counter

1
OrderedDict


1
from&nbsp;collections&nbsp;import&nbsp;Counter,&nbsp;OrderedDict<br><br><em>#&nbsp;方法1:使用Counter统计元素出现次数</em><br>words&nbsp;=&nbsp;&#091;'apple',&nbsp;'banana',&nbsp;'apple',&nbsp;'orange',&nbsp;'banana',&nbsp;'apple']<br>word_count&nbsp;=&nbsp;Counter(words)<br>print(word_count)&nbsp;&nbsp;<em>#&nbsp;输出:&nbsp;Counter({'apple':&nbsp;3,&nbsp;'banana':&nbsp;2,&nbsp;'orange':&nbsp;1})</em>

给TA打赏
共{{data.count}}人
人已打赏
安全运维

安全运维之道:发现、解决问题的有效闭环

2024-4-14 20:59:36

安全运维

稳定性建设 – 架构优化的关键策略

2025-2-11 17:15:56

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索