Python字典_一种映射
Posted 巴州夜雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python字典_一种映射相关的知识,希望对你有一定的参考价值。
字典是一种映射
字典就像是一个列表一样,但更加泛化了,是列表概念的推广。在列表里面,索引必须是整数;而在字典里面,你可以用几乎任何类型来做索引了。
从字符串string,到列表 list,再到字典 dictionary,Python的变量类型就是一种泛化的过程,内容在逐步推广,适用范围更大了。
字典包括一系列的索引,不过就已经不叫索引了,而是叫键,然后还对应着一个个值,就叫键值。每个键对应着各自的一个单独的键值,这种键和键值的对应关系也叫键值对,有时候也叫项。
用数学语言来说,一个字典就代表了从键到键值的一种映射关系,所以你也可以说每个键映射到一个键值。
dict这个函数创建一个没有项目的空字典。因为dict已经是内置函数的名字了,所以你应该避免用来做变量名:
>>> test = dict()
>>> test
{}
大括号,也叫花括号,就是{},代表了一个空字典。要在字典里面加项,可以使用方括号:
>>> test[‘fruit‘] = ‘apple‘
这一行代码建立了一个项,这个项映射了键 ‘fruit‘ 到键值 ‘apple‘。如果我们再来打印输出一下这个字典,就会看到里面有这样一个键值对了,键值对中间用冒号隔开了:
>>> test[‘fruit‘] = ‘apple‘
>>> test
{‘fruit‘: ‘apple‘}
这种输出的格式也可以用来输入。比如你可以这样建立一个有三个项的字典:
>>> test ={‘one‘:‘jim‘, ‘two‘:‘lucy‘, ‘three‘:‘tom‘}
>>> test
{‘one‘: ‘jim‘, ‘two‘: ‘lucy‘, ‘three‘: ‘tom‘}
有时候,你会发现字典中的项的顺序是不确定的。
其实这不要紧,因为字典里面的元素并不是用整数索引来排列的。我们可以直接用键来查找对应的键值:
>>> test ={‘one‘:‘jim‘, ‘two‘:‘lucy‘, ‘three‘:‘tom‘}
>>> test[‘one‘]
‘jim‘
>>> test[‘two‘]
‘lucy‘
>>> test[‘three‘]
‘tom‘
如果在字典中没有你指定的键,会提示键值错误:
>>> test[‘four‘]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: ‘four‘
len 函数也可以用在字典上,它会返回键值对的数目:
>>> test ={‘one‘:‘jim‘, ‘two‘:‘lucy‘, ‘three‘:‘tom‘}
len(test)
3
in 运算符也适用于字典;你可以用它来判断某个键是不是存在于字典中(注意,是判断键,不能判断键值)。
>>> ‘one‘ in test
True
>>> ‘jim‘ in test #注意,是判断键,而不能判断键值
False
要判断键值是否在字典中,你就要用到 values 方法,这个方法会把键值返回,然后用 in 判断就可以了:
>>> test ={‘one‘:‘jim‘, ‘two‘:‘lucy‘, ‘three‘:‘tom‘}
>>> vals = test.values()
>>> ‘jim‘ in vals
True
in 运算符在字典中和列表中有不同的算法。
对列表来说,它就按照列表顺序搜索列表中的每一个元素。随着列表越来越长了,这种搜索就消耗更多的时间,才能找到正确的位置。
而对字典来说,Python 使用了哈希表的算法,哈希表一种很厉害的特性:in运算符被使用于字典的时候,无论字典规模多大,无论里面的项有多少个,花费的时间都是基本一样的。
结束。
以上是关于Python字典_一种映射的主要内容,如果未能解决你的问题,请参考以下文章