Python零基础入门(八)

八、字典与集合

8.1 字典

字典和列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键值对”的形式存放的。这类似于一本字典,可以把拼音和汉字关联起来。通过音节表可以快速查找想要的汉字。其中,字典的音节表相当于键(key),而对应的汉字就相当于值(value)。键是唯一的,而值可以是多个。字典在定义一个包含多个命名字段的对象时,很有用。

说明:Python中的字典相当于Java或者C++中的Map对象。

字典的主要特征如下:

  1. 通过键而不是通过索引来读取:
    字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。
  2. 字典是任意对象的无序集合:
    字典是无序的,各项是从左到右随机排序的,即保存在字典中的项没有特定的顺序,这样可以提高查找的效率。
  3. 字典是可变的,并且可以任意嵌套:
    字典可以在原处增长或者缩短(无须生成一份备份),并且它支持任意深度的嵌套(即它的值可以是列表或者其他字典)。
  4. 字典中的键必须唯一
    不允许同一个键出现两次,如果出现两次,则后一个值会被记住。
  5. 字典中的键必须不可变
    字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。

8.1.1 字典的创建和删除

定义字典时,每个元素都包含两个部分“键”和“值”。以水果名称和价钱的字典为例,键为水果名称,值为水果价格。如下图所示。

在这里插入图片描述

创建字典时,在“键”和“值”之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一个“{}”中。语法格式如下:
dictionary = {‘key1’: ‘value1’, ‘key2’: ‘value2’, …, ‘keyn’: ‘valuen’,}
参数说明:
dictionary:字典名称
key1、key2…keyn:表示元素的键,必须是唯一的,并且不可变的,可以是字符串、数字或者元组
value1、value2…valuen:表示元素的值,可以是任何数据类型,不是必须唯一。
下面看一个通讯录的字典样式:

dictionary = {
   'qq': '2901338265', 'uestc': '123456789', 'ccf': '88888888'}
print(dictionary)
{'qq': '2901338265', 'uestc': '123456789', 'ccf': '88888888'}

同列表和元组一样,在Python中也可以创建空字典。使用下面两种方法创建空字典:
dictionary = {}
或者
dictionary = dict()
Python的dict()方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典。主要表现为以下两种形式:

1.通过映射函数创建字典,语法如下:
dictionary = dict(zip(list1, list2))
参数说明:
dictionary:表示字典名称。
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip()对象。如果想得到元组,可以使用tuple()函数将zip对象转换为元组;如果想得到列表,则可以使用list()函数将其转换为列表。
说明:在Python 2.x中,zip()函数返回的内容为包含元组的列表。

下面看看Python3中的代码示例:

name = ['uestc', 'geek', 'bao']
sign = ['university', 'csdn', 'first']
dictionary = dict(zip(name, sign))
print(dictionary)
{'uestc': 'university', 'geek': 'csdn', 'bao': 'first'}

2.通过给定的“键值对”创建字典,语法如下:
dictionary = dict(key1=value1, key2=value2, …, keyn=valuen)
参数说明:
dictionary:字典名称
key1、key2…keyn:表示元素的键,必须是唯一的,并且不可变的,可以是字符串、数字或者元组
value1、value2…valuen:表示元素的值,可以是任何数据类型,不是必须唯一。
代码示例如下

dictionary = dict(uestc = 'university', geek = 'csdn', bao = 'first')
print(dictionary)
{'uestc': 'university', 'geek': 'csdn', 'bao': 'first'}

在Python中还可以使用dict对象的fromkeys()方法创建值为空的字典,语法如下:
dictionary = dict.fromkeys(list1)
参数说明:
dictionary:表示字典
list1:表示作为字典的键的列表
示例代码如下:

name_list = ['uestc', 'geek', 'bao']
dictionary = dict.fromkeys(name_list)
print(dictionary
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值