python基础之字典

本文详细介绍了Python字典的用途、创建方法和基本操作,包括字典的键值对、创建字典的方式、字典操作如get、update、pop等,并探讨了如何利用字符串格式设置功能处理字典。字典是Python中唯一的内置映射类型,适用于快速查找和数据组织,其无序特性使其在存储和处理关联数据时特别有用。
摘要由CSDN通过智能技术生成

需要将一系列值组合成数据结构并通过编号来访问各个值时,列表很有用。但是还有一种同属于容器但是不同于序列的数据结构——字典,这种数据结构称为映射(mapping)。字典可通过名称来访问其各个值,是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下。键可能是数、字符串或元组。

1. 字典的用途

字典的名称指出了这种数据结构的用途。普通图书适合按从头到尾的顺序阅读,如果你愿意,可快速翻到任何一页,这有点像Python中的列表。字典(日常生活中的字典和Python字典)旨在让你能够轻松地找到特定的单词(键),以获悉其定义(值)。
在很多情况下,使用字典都比使用列表更合适。下面是Python字典的一些用途:
 表示棋盘的状态,其中每个键都是由坐标组成的元组;
 存储文件修改时间,其中的键为文件名;
 数字电话/地址簿。
假设不用字典来存储电话号码,而是将用户与电话号码对应的用两个列表users\phones来存储。则需要先知道用户在列表users的index,再输出列表phones中下标为index的值。

2. 创建和使用字典

字典以如下方式表示:
phonebook = {‘alice’:‘2341’,‘beth’:‘9102’}
字典由键及其相应的值组成,这种键值对称为项(item)。在前面的示例中,键为名字,而值为电话号码。每个键与其值之间都用冒号( : )分隔,项之间用逗号分隔,而整个字典放在花括号内。空字典(没有任何项)用两个花括号表示,类似于下面这样: {} 。

2.1 函数dict

可使用函数dict从其他映射(如:字典)创建字典(注意此时不是引用):

In [1]: phonebook = {'alice':'2341','beth':'9102'}
In [2]: phones = dict(phonebook)
In [3]: phones
Out[3]: {'alice': '2341', 'beth': '9102'}

还可以通过键-值对序列创建字典:

In [7]: items = [('python','1203'),('java','2345')]
In [8]: items_dict = dict(items)
In [10]: items_dict
Out[10]: {'python': '1203', 'java': '2345'}

还可使用关键字实参来调用这个函数,如下所示:

In [13]: items = dict(name='momo',age=23)
In [14]: items
Out[14]: {'name': 'momo', 'age': 23}

也可使用一个映射实参来调用它,这将创建一个字典,其中包含指定映射中的所有项。像函数 list 、 tuple 和 str 一样,如果调用这个函数时没有提供任何实参,将返回一个空字典。从映射创建字典时,如果该映射也是字典(毕竟字典是Python中唯一的内置映射类型),可不使用函数 dict ,而是使用字典方法 copy 。

2.2基本的字典操作

字典的基本行为在很多方面都类似于序列。

  • len(d) 返回字典 d 包含的项(键值对)数。
  • d[k] 返回与键 k 相关联的值。
  • d[k] = v 将值 v 关联到键 k 。
  • del d[k] 删除键为 k 的项。
  • k in d 检查字典 d 是否包含键为 k 的项。

虽然字典和列表有多个相同之处,但也有一些重要的不同之处。如下所示:

键的类型:字典中的键可以是整数,但并非必须是整数。字典中的键可以是任何不可变的类型,如浮点数(实数)、字符串或元组。

In [25]: tup = ('m','mm')
In [26]: items = {tup:'mm'}
In [27]: lis = ['m','mm']
In [28]: items = {lis:'mm'}
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-28-e5f7b81191f3> in <module>
----> 1 items = {lis:'mm'}
TypeError: unhashable type: 'list'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的胖虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值