Python学习入门教程之字典知识概述

154 阅读4分钟

作为一门对新手友好、就业前景广阔的编程语言,
Python
一直深受人们青睐。想要学好
Python
需要从入门到进阶一点一点掌握,而繁杂的理论知识点让不少人伤脑筋。事实上,只要你理清知识关系,掌握其用法并尝试动手操作,就可以慢慢掌握。接下来小编就给大家分享
Python
学习入门教程中字典的相关知识。

目前,在
Python
中只内置了一种映射类型:字典。除去那些不能哈希的类型的值(例如列表,字典和其他通过值而不是
id
比较的可变类型的值),其它值几乎都可用作字典的键。用于键的数字类型遵循数字比较的一般规则:如果两个数字键比较相等
(
比如
1
1.0)
,那么它们视为同一个键。

字典类型对象的构造

字典对象可以通过将逗号分隔的键值对放置到
{}
或使用
dict()
构造。其中
dict()
有三种形式:

1

dict(**kwarg)
所有实参都是以关键字参数的形式传递。

2

dict(mapping, **kwarg)
接受第一个为映射类型的参数,其余(若有)都以关键字参数的形式传递。

3

dict(iterable, **kwarg)
接受一个可迭代类型的位置参数,此参数的元素必须是键值对,其余(若有)都以关键字参数的形式传递。

字典对象是按如下构造的:

1

、如果没有提供位置参数,则构造空字典对象。

2

、如果提供的位置参数是映射类型的,则创建包含与该参数所包含的键值对的相同的字典。

3

、如果提供的位置参数是可迭代类型的,则构包含该参数中每个元素的第一个对象为键第二个对象为值的键值对的字典,如果键重复出现则最后出现的值为此键的值。这种情况下要求该参数中的元素本身必须是包含两个对象的可迭代类型的对象,并且元素的第一个对象必须是可哈希的。如果不满足此要求会报
TypeError

4

、如果提供了关键字参数,则关键字参数表示的键值对加入到新创建的字典中,如果键已存在则用现在的值更新之前的值。

字典类型支持的操作

list(d)

返回由字典
d
中所有键组成的列表;

len(d)

返回字典
d
中键值对的个数;

d[key]

返回字典
d
中对应于键
key
的值。如果键不存在则报
KeyError
。如果定义
dict
的子类时定义了一个方法
__missing__()
,假设
dSub
为该子类的对象,且
key
在给对象中不存在,那么
dSub[key]
操作就会调用
__missing__()
,并将键
key
作为参数。然后该操作返回或引发由调用
__missing__ (key)
返回或引发的任何内容。子类中不存在其他操作或方法调用
__missing__()
。如果没有定义
_missing__()
,则
dSub[key]
会引发
KeyError
。在子类中
__missing__()
必须定义为一个方法,不能是一个实例变量;

d[key]=value

将字典
d
中键对应的值设为
value
,如果键
key
存在,则用
value
更新对应的值,否则插入键值对
(key,value)

del d[key]

将字典中键
key
对应的键值对移除,如果不存在该键则报
KeyError

key in d

如果在字典中存在
key
则为
True
,否则为
False

key not in d

如果在字典中不存在
key
则为
True
,否则为
False
。等同于
not key in d

iter(d)

返回字典中键的一个迭代器。是
iter(d.keys())
的快捷方式;

d.clear()

清除字典中所有键值对;

d.copy()

返回字典
d
的一个浅拷贝;

dict.fromkeys(iterable[, value])

用来创建包含以
itervale
中元素为键
value
为值的键值对的字典,这是
dict
的类方法;

d.get(key[, default])

如果字典
d
包含键
key
,则返回键
key
对应的值,否则返回
default
,如果没有给定
default
则返回
None

d.items()

返回字典的键值对的一个新视图;

d.keys()

返回字典的键的一个新视图;

d.pop(key[, default])

如果
key
在字典
d
中,则从
d
中移除
key
对应的键值对并返回其对应的值,否则返回
default
。如果没有给出
default
的值,则报
KeyError

d.popitem()

从字典
d
中移除并返回一个键值对。键值对的返回顺序为后进先出,即后加入的键值对先返回;

reversed(d)

返回字典
d
的键的一个逆序迭代器;

d.setdefault(key[, default])

如果键
key
在字典中,则返回其对应的值,否则将键值对
(key,default)
插入
d
中。
default
缺省为
None

d.update([other])

使用
other
中的键值对更新字典,对存在的键的值进行覆盖,键不存在的插入键值对。返回
None
。其中
other
可以是字典对象,也可以是包含键值对的可迭代对象,或是关键字形式的参数;

d.values()

返回字典
d
中值的一个新视图。字典的一个值视图和另一个值视图的相等性比较总是返回
False
,包括自己和自己比较。