python dict字典

简介: python dict字典

mapping 对象会将 hashable 值映射到任意对象。 映射属于可变对象。 目前仅有一种标准映射类型 字典。 (关于其他容器对象请参看 list, set 与 tuple 等内置类,以及 collections 模块。)


字典的键 几乎 可以为任何值。 不是 hashable 的值,即包含列表、字典或其他可变类型(按值比较而非按对象标识比较)的值不可被用作键。 比较结果相等的值(如 1, 1.0 和 True 等)可被互换使用以索引同一个字典条目。


前言

在 Python 中,dict 是一种数据结构,也称为字典(Dictionary),用于存储键值对(key-value pairs)的集合。字典是一种可变的、无序的、以键为索引的集合,其中每个键必须是唯一的,但值则不必唯一。

一、dict是什么?

在 Python 中,dict 是一种数据结构,也称为字典(Dictionary),用于存储键值对(key-value pairs)的集合。字典是一种可变的、无序的、以键为索引的集合,其中每个键必须是唯一的,但值则不必唯一。

字典的特点包括:

无序性:字典中的键值对没有固定的顺序,不像列表或元组有顺序。

键的唯一性:字典中的键必须是唯一的,如果重复赋值给同一个键,则会覆盖原来的值。

可变性:字典是可变的,可以修改、添加或删除键值对。

二、使用步骤

1.基本操作(增删查改)

代码如下(示例):

创建字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
#创建空字典
dict2 = {}
print(dict2)

访问字典元素

print(dict1['name'])  # 输出:Alice

修改字典元素

dict1['age'] = 26
print(dict1['age'])  # 输出:26

添加字典元素

dict1['gender'] = 'female'
print(dict1)  # 输出:{'name': 'Alice', 'age': 26, 'city': 'Beijing', 'gender': 'female'}

删除字典元素

del dict1['city']
print(dict1)  # 输出:{'name': 'Alice', 'age': 26, 'gender': 'female'}、

判断字典是否为空

if not dict1:
    print('字典为空')  # 输出:字典为空

else:
    print('字典不为空')  # 输出:字典不为空

遍历字典

for key in dict1:
    print(key, ':', dict1[key])  # 输出:name : Alice、age : 26、gender : female
for k,v in dict1.items():
    print(k, ':', v)  # 输出:name : Alice、age : 26、gender : female
#dict()使用方法,里面的参数是2元组或者函数的参数
dict3 = dict(name='Bob', age=30, city='Shanghai')
print(dict3)  # 输出:{'name': 'Bob', 'age': 30, 'city': 'Shanghai'}
list1 = [('name', 'Tom'), ('age', 35), ('city', 'Guangzhou')]
dict4 = dict(list1)
print(dict4)  # 输出:{'name': 'Tom', 'age': 35, 'city': 'Guangzhou'}

2.常用方法

字典的常用方法

1.clear():清空字典

python dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} dict1.clear() print(dict1)  # 输出:{}

2.copy():复制字典

dict1= {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = dict1.copy()
print(dict2)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing'}

3.fromkeys():创建指定键的字典,是一个类方法,参数为序列或迭代器,默认参数是None

dict.fromkeys(['name', 'age', 'city'], 'unknown')  # 输出:{'name': 'unknown', 'age': 'unknown', 'city': 'unknown'}
d=dict.fromkeys(range(3))
print("d=",d)#输出:d= {0: None, 1: None, 2: None}

4.get():获取指定键的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.get('name'))  # 输出:Alice
print(dict1.get('gender', 'unknown'))  # 输出:unknown,不存在返回默认值,没有默认值返回None

5.items():以列表返回可遍历的(键, 值) 元组数组

6.keys():以列表返回字典所有的键

7.values():以列表返回字典所有的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} 
print(dict1.items())  # 输出:dict_items([('name', 'Alice'), ('age', 25), ('city', 'Beijing')])
print(dict1.keys())  # 输出:dict_keys(['name', 'age', 'city'])
print(dict1.values())  # 输出:dict_values(['Alice', 25, 'Beijing'])

8.pop():删除指定键的值,并返回该值


```python
dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} print(dict1.pop('name'))  # 输出:Alice print(dict1)  # 输出:{'age': 25, 'city': 'Beijing'}

9.popitem():随机删除一个键-值对,并返回该键-值对

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.popitem())  # 输出:('city', 'Beijing')
print(dict1)  # 输出:{'name': 'Alice', 'age': 25}

10.setdefault():设置默认值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.setdefault('gender', 'unknown'))  # 输出:unknown
print(dict1)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gend`er': 'unknown'}`

11.update():更新字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict1.update(dict2)
print(dict1)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}

12.并集运算符 |

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict3 = dict1 | dict2
print(dict3)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}


总结

字典的键必须是不可变对象,如字符串、数字、元组等,而值则可以是任意对象。
字典是一种可变容器,可以随时添加、删除或修改元素。
字典的键是通过哈希算法计算出来的,所以字典的查找速度非常快。
字典是一种映射类型,它的元素是键-值对。

字典的创建格式是{key1:value1, key2:value2,…, keyn:valuen}。

字典的键必须是不可变对象,而值可以是任意对象。

字典的键必须是唯一的,不能重复。

字典的键不能改变,但可以重新赋值。



相关文章
|
6天前
|
JSON 算法 算法框架/工具
【python】python指南(十二):Json与dict、list互相转换
【python】python指南(十二):Json与dict、list互相转换
6 0
|
5天前
|
存储 索引 Python
Python学习笔记----列表、元组和字典的基础操作
这篇文章是一份Python学习笔记,涵盖了列表、元组和字典的基础操作,包括它们的创建、修改、删除、内置函数和方法等。
Python学习笔记----列表、元组和字典的基础操作
|
12天前
|
存储 索引 Python
探究 Python3 字典的现世
【8月更文挑战第6天】Python 3 中的字典是一种内置数据类型,采用键值对形式存储数据,支持通过键快速检索值。字典无序且可变,键唯一。创建字典可用 `{}` 或 `dict()` 函数,访问、更新和删除条目分别通过索引、`update()` 和 `del` 实现。
24 1
|
16天前
|
JSON 数据格式 Python
【python】解决json.dump(字典)时报错Object of type ‘float32‘ is not JSON serializable
在使用json.dump时遇到的“Object of type ‘float32’ is not JSON serializable”错误的方法,通过自定义一个JSON编码器类来处理NumPy类型的数据。
18 1
|
17天前
|
Python
【Python】对字典进行排序
该文档介绍了如何在Python中对字典进行排序的方法。
12 2
|
6天前
|
SQL 分布式计算 算法
【python】python指南(十四):**操作符解包字典传参
【python】python指南(十四):**操作符解包字典传参
13 0
|
6天前
|
SQL 机器学习/深度学习 算法
【python】python指南(六):静态类型注解之Dict
【python】python指南(六):静态类型注解之Dict
12 0
|
10天前
|
存储 Python
Python字典与集合
【8月更文挑战第9天】本文深入探讨了Python中字典和集合这两种重要数据结构的使用方法。字典采用键值对形式存储数据,支持创建、添加、删除及检索等操作;集合则存储唯一元素,适用于成员检测等场景。文中通过丰富的代码示例介绍了如何利用这两种数据结构,并展示了字典推导式、集合推导式等高级技巧,帮助读者更高效地处理数据。阅读本文后,你将能够更加熟练地运用字典和集合解决实际问题。
23 0
|
14天前
|
Python
【Python】对key或values是datetime类型或时间字符串的字典dict排序
本文提供了针对字典中key为时间字符串或datetime类型时进行排序的解决方案,包括将时间字符串转换为datetime对象排序和直接对datetime类型的key排序的方法。
25 0
|
1月前
|
存储 Python 容器
Python字典
【7月更文挑战第12天】Python字典
16 2