当前分类:python>>正文

Python字典:高效地存储、访问和操作数据

来源:互联网   更新时间:2023年7月8日  

Python 笔记

一、字典的概述

Python中的字典是一种高效的数据结构,用于存储和访问键-值对。每个键-值对都是一个项(item),通过键(key)来访问相应的值(value)。字典是一种可变的数据类型,可以通过添加、修改、删除操作来改变它的内容。字典的实现是通过哈希表(hash table)实现的,可以实现O(1)的随机访问。

>>> # 创建一个字典
>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> # 访问字典中的值
>>> print(my_dict['apple'])
5
>>> # 添加一个项
>>> my_dict['pear'] = 4
>>> # 修改一个项
>>> my_dict['banana'] = 6
>>> # 删除一个项
>>> del my_dict['orange']
>>> # 遍历字典的键
>>> for key in my_dict:
...     print(key)
...
apple
banana
pear
>>> # 遍历字典的键和值
>>> for key, value in my_dict.items():
...     print(key, value)
...
apple 5
banana 6
pear 4

与列表、元组等序列类型不同,字典没有顺序的概念。在迭代时,键-值对的顺序是随机的,并且可能会随着字典的修改而改变。

二、字典的创建和基本操作

字典可以通过花括号{}或者dict()函数创建。字典的键必须是可哈希(hashable)的,这意味着它们可以作为哈希表中的索引。

字典的基本操作包括添加、修改、删除、键的判断和访问。

1. 创建字典

字典可以通过花括号{}或者dict()函数创建,如下所示:

>>> # 使用花括号创建字典
>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict)
{'apple': 5, 'banana': 3, 'orange': 2}
>>> # 使用dict()函数创建字典
>>> my_dict = dict(apple=5, banana=3, orange=2)
>>> print(my_dict)
{'apple': 5, 'banana': 3, 'orange': 2}

2. 添加、修改和删除项

使用索引来添加、修改和删除项,如下所示:

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> # 添加一个项
>>> my_dict['pear'] = 4
>>> print(my_dict)
{'apple': 5, 'banana': 3, 'orange': 2, 'pear': 4}
>>> # 修改一个项
>>> my_dict['banana'] = 6
>>> print(my_dict)
{'apple': 5, 'banana': 6, 'orange': 2, 'pear': 4}
>>> # 删除一个项
>>> del my_dict['orange']
>>> print(my_dict)
{'apple': 5, 'banana': 6, 'pear': 4}

3. 键的判断、访问和遍历

使用in操作符判断键是否在字典中,通过索引访问字典中的某个键的值,可以使用items()遍历键-值对。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> # 判断键是否在字典中
>>> print('apple' in my_dict)
True
>>> print('pear' in my_dict)
False
>>> # 访问字典中的某个键的值
>>> print(my_dict['apple'])
5
>>> # 遍历字典的键
>>> for key in my_dict:
...     print(key)
...
apple
banana
orange
>>> # 遍历字典的键和值
>>> for key, value in my_dict.items():
...     print(key, value)
...
apple 5
banana 3
orange 2

三、字典的高级操作

1. 字典推导式

字典推导式是一种创建字典的方式,它可以从任何可迭代的对象中创建字典。语法格式为{key_expression: value_expression for expression in iterable}。

>>> # 创建一个字典,键是1~10的整数,值是它们的平方
>>> my_dict = {i: i**2 for i in range(1, 11)}
>>> print(my_dict)
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

2. 字典的内置方法

字典有许多内置方法,可以方便地进行操作。以下是一些常用的内置方法:

i) clear()

clear()方法用于删除字典中的所有项。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> my_dict.clear()
>>> print(my_dict)
{}

ii) copy()

copy()方法用于复制字典。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> new_dict = my_dict.copy()
>>> print(new_dict)
{'apple': 5, 'banana': 3, 'orange': 2}

iii) keys()

keys()方法返回字典中所有键组成的列表。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict.keys())
dict_keys(['apple', 'banana', 'orange'])

iv) values()

values()方法返回字典中所有值组成的列表。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict.values())
dict_values([5, 3, 2])

v) items()

items()方法返回字典中所有键-值对组成的列表。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict.items())
dict_items([('apple', 5), ('banana', 3), ('orange', 2)])

vi) get()

get()方法用于获取字典中某个键的值,如果键不存在,则返回指定的默认值(默认为None)。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict.get('apple'))
5
>>> print(my_dict.get('pear'))
None
>>> print(my_dict.get('pear', 0))
0

vii) setdefault()

setdefault()方法用于获取字典中某个键的值,如果键不存在,则添加该键-值对到字典中。

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> print(my_dict.setdefault('pear', 4))
4
>>> print(my_dict)
{'apple': 5, 'banana': 3, 'orange': 2, 'pear': 4}
>>> print(my_dict.setdefault('apple', 6))
5
>>> print(my_dict)
{'apple': 5, 'banana': 3, 'orange': 2, 'pear': 4}

3. 字典的排序

字典本身是无序的,但是可以通过sorted()函数和lambda函数实现对字典的排序。以下是两种常见的排序方式:

i) 按键排序

按键排序是按字典中的键进行排序,如下所示:

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> # 按键排序,返回一个元组列表
>>> sorted_dict = sorted(my_dict.items(), key=lambda x: x[0])
>>> print(sorted_dict)
[('apple', 5), ('banana', 3), ('orange', 2)]

ii) 按值排序

按值排序是按字典中的值进行排序,如下所示:

>>> my_dict = {'apple': 5, 'banana': 3, 'orange': 2}
>>> # 按值排序,返回一个元组列表
>>> sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
>>> print(sorted_dict)
[('orange', 2), ('banana', 3), ('apple', 5)]

结语

Python字典作为一种常用的数据结构,可以高效地存储、访问和操作数据。字典的基本操作包括添加、修改、删除、键的判断和访问,字典可以通过花括号{}或者dict()函数创建。字典推导式和内置方法可以方便地进行操作,例如清空字典、复制字典、获取键-值对等。同时也可以通过sorted()函数和lambda函数实现对字典的排序。在数据处理、机器学习、Web开发等领域都有广泛的应用。

本文固定链接:https://6yhj.com/leku-p-4718.html  版权所有,转载请保留本地址!
[猜你喜欢]

标签: 兼职