Python字典:更高效、更便捷的数据存储方案

Python字典:更高效、更便捷的数据存储方案Python中的字典是一种键-值对(key-value)存储的数据结构,其它编程语言中也有类似结构,比如JavaScript的对象,Java的HashMap。字典的特点在于通过一个唯一的键(key)来关联一个值(value),这与列表(list)、元组(tuple)等线性数据结构不同。

一、字典的定义与特点

Python中的字典是一种键-值对(key-value)存储的数据结构,其它编程语言中也有类似结构,比如JavaScript的对象,Java的HashMap。字典的特点在于通过一个唯一的键(key)来关联一个值(value),这与列表(list)、元组(tuple)等线性数据结构不同。

字典可以使用花括号({})或者dict()函数来创建,在花括号中用逗号分隔键-值对,每个键值对使用冒号(:)进行分割。

# 创建字典
person = {'name': 'Jack', 'age': 20, 'city': 'New York'}
# 使用dict()创建字典
person = dict(name='Jack', age=20, city='New York')

字典的特点在于其快速查询,由于不需要按照顺序进行查找,可以在O(1)的时间复杂度内找到元素。此外,字典中的键必须是不可变的对象,例如字符串、数字、元组等,而值可以是任意类型的对象。

二、字典的基本操作

添加、修改、删除

可以通过索引的方式对字典进行添加、修改操作,如果键存在则为修改,不存在则为添加。删除操作可以使用del关键字删除指定的键-值对。

person = {'name': 'Jack', 'age': 20, 'city': 'New York'}
# 添加键-值对
person['phone'] = '1234567'
# 修改键-值对
person['age'] = 21
# 删除键-值对
del person['city']

遍历字典

可以使用for循环遍历字典中的所有键-值对,也可以通过keys()、values()、items()方法分别获取字典中的键、值、键-值对。

person = {'name': 'Jack', 'age': 20, 'city': 'New York'}
# 遍历所有键-值对
for key, value in person.items():
    print(key, value)
# 遍历所有键
for key in person.keys():
    print(key)
# 遍历所有值
for value in person.values():
    print(value)

查询字典

可以使用in关键字查询字典中是否包含指定的键,也可以通过get()方法获取指定键的值,如果键不存在则返回None或者自定义的默认值。

person = {'name': 'Jack', 'age': 20, 'city': 'New York'}
# 查询键是否存在
if 'phone' in person:
    print(person['phone'])
# 通过get()获取值
print(person.get('age', 18))

三、字典的高级技巧

字典推导式

与列表推导式类似,字典推导式可以通过一行代码来快速生成字典,格式为{key_expression: value_expression for expression in iterable}。

# 生成字典{name: len(name)}
names = ['Tom', 'Jerry', 'Spike']
name_length = {name: len(name) for name in names}

默认字典

默认字典(defaultdict)是Python内置模块collections提供的一种字典子类,当查询的键不存在时,会返回一个默认值而不是抛出异常。默认字典可以通过设置一个工厂函数来指定默认值的类型。

from collections import defaultdict

# 创建默认字典,指定默认值为int类型
dd = defaultdict(int)
# 增加键a的值,由于a不存在,默认值为0
dd['a'] += 1
print(dd['a'])

# 创建默认字典,指定默认值为list类型
dd = defaultdict(list)
dd['list'].append(1)
print(dd['list'])

OrderedDict

OrderedDict是Python内置模块collections提供的一种字典子类,在普通字典的基础上,为插入顺序维护了一个双向链表,因此可以保证元素的顺序与添加时的顺序相同。

from collections import OrderedDict

# 创建有序字典
od = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
print(od)

Counter

Counter是Python内置模块collections提供的一种字典子类,用于统计元素出现的次数,其返回一个类似字典的容器,其中元素名为键,元素个数为值。

from collections import Counter

# 统计字符串中单词出现次数
words = 'this is a sample sentence'
word_count = Counter(words.split())
print(word_count)

四、总结

字典是Python中极为常用的数据结构之一,其使用灵活、高效、便捷,可以应用于各种场景。掌握字典的基本操作以及一些高级技巧,可以提高编程效率,减少错误。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/22777.html

(0)
上一篇 2023-12-29
下一篇 2023-12-29

相关推荐

  • Python函数参数的使用方法

    Python函数参数的使用方法Python 函数参数是调用函数时传递给函数的值。它们被定义在函数定义中,并在函数调用时使用。Python提供了很多种不同类型的函数参数,将会在下文中详细介绍。

    2024-02-24
    37
  • [命令行]Mysql 导入 excel 文件

    [命令行]Mysql 导入 excel 文件将 excel 表格中的数据批量导入数据库中 将要导入的表删除字段名,只留下要导入的数据。 将文件另存为 *.csv格式,可以用记事本打开(实际上就是标准的逗号分隔的数据 进入mysql,输入命令,打

    2023-04-26
    80
  • mssql的text字段中文乱码

    mssql的text字段中文乱码问题: 1.在页面存入中文后乱码,从前端从后台发现数据未发生异常,发现是存入数据库后乱码; 经查询该字段为text字段,存入中文会乱码 如图 解决办法: 1.将text转为varchar或nvarch

    2022-12-18
    69
  • 从网络导入数据到python(从网站导入数据)

    从网络导入数据到python(从网站导入数据)可以,但难易程度取决于在下面哪个阶段获取这个数据

    2023-10-29
    49
  • 华为分析丨一文看懂安装归因,打造高转化的用户增长体系

    华为分析丨一文看懂安装归因,打造高转化的用户增长体系新用户来自于哪里? 各个渠道的新用户次留、7日留存、30日留存率如何? 各个渠道的新用户付费转化率有何差异? 如何提升付费率、复购率或其他关键行为的转化率? 相信以上几个问题是APP的产品和运营人员…

    2023-04-12
    75
  • MySQL高可用架构_高可用架构社区

    MySQL高可用架构_高可用架构社区一、MHA介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)

    2022-12-26
    69
  • DMS管理系统_dm8数据库

    DMS管理系统_dm8数据库团队管理 团队的概念是一个用户群体的意思,可以理解为一个业务线下的用户集合,也可以理解为一个小组的集合。 管理员 系统初始化的管理员拥有平台最大的权限,只有管理可以创建团队和添加管理员。 负责人 团…

    2023-01-28
    82
  • pg 性能分析_pg4实战怎么样

    pg 性能分析_pg4实战怎么样postgresql 库中出现性能问题,对于复杂的sql, 常用分析过程: 简化SQL,定位性能异常点: 简化输出。像下面语句,可以先把输出的子查询去掉。有时也可以使用count(*)代替输出。 逐…

    2023-03-16
    79

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注