【Python学习笔记】四、映射(Mapping)

• 通过名字来引用值得数据结构称为映射

字典(Dict)

•   字典是键值对(key-value pair)的无序可变集合。

(1)字典的操作

①字典的创建

• 字典中的每个元素包含两部分:键和值。

• 键和值用冒号分隔,元素间用逗号分隔,所有元素放在一对大括号中。

d = {key1 : value1, key2 : value2 }

• 字典中的键为任意不可变对象,比如整数、实数、复数、字符串、元组等。

• 字典中的键是唯一的。

• 空字典:{}

• 使用dict()创建字典

>>>d=dict(name=’Python’)

>>>d

{‘name’:’Python’}

②字典的删除

dict ={'Name':'Runoob','Age':7,'Class':'First'}

del dict['Name']# 删除键 'Name'

dict.clear()     #清空字典

del dict         # 删除字典

③字典的读取

•   以键作为下标可以读取字典元素,若键不存在则抛出异常

•   使用字典对象的get方法获取指定键对应的值,并且可以在键不存在的时候返回指定值。如不指定,默认返回None。

④字典的添加与修改

• 当以指定键为下标为字典赋值时,若键存在,则可以修改该键的值;若不存在,则表示添加一个键、值对

• 使用字典对象的update方法将另一个字典的键、值对添加到当前字典对象

⑤字典的其他操作

len(dict)

计算字典元素个数,即键的总数。

str(dict)

输出字典,以可打印的字符串表示。

type(variable)

返回输入的变量类型,如果变量是字典就返回字典类型。

del dict[k]

删除键为k的项

del dict

删除字典dict

k in dict

检查dict中是否含有键为k的项

 

(2)字典的方法

方法

功能说明

添加与删除方法

setdefault

(key,default=None)

如果key在字典中,返回对应的值。

如果不在字典中,则插入key及设置的默认值default,并返回 default default默认值为None

参数

key -- 查找的键值。

default -- 键不存在时,设置的默认键值。

update(dict2)

把字典dict2的键/值对更新到dict里

无返回值

参数

dict2 -- 添加到指定字典dict里的字典。

pop(key[,default])

删除字典给定键key所对应的值,返回值为被删除的值。

如果没有给定键且未设置default值,就报出KeyError异常

参数

key -- 要删除的键值

default -- 如果没有 key,返回 default

popitem()

随机返回并删除字典中的一对键和值。返回的形式为(key,value)

如果字典已经为空,却调用了此方法,就报出KeyError异常

site={'name':'python','number':1}

pop_obj=site.popitem()

>>>print(pop_obj)  

('number':1)

>>>print(site)

{'name':'python'}

 

clear()

清除字典中所有的项。

无返回值。

原地操作。

构造方法

copy()

返回与一个具有相同键值对的新字典。

浅拷贝

>>> a = {1: [1,2,3]}

>>> b = a.copy()

>>> a, b

 ({1: [1, 2, 3]}, {1: [1, 2, 3]})

>>> a[1].append(4)

>>> a, b

 ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

 

deepcopy()

 

>>>importcopy

>>> c = copy.deepcopy(a)

>>> a, c

({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

>>> a[1].append(5)

>>> a, c

({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

fromkeys

(seq[, value]))

返回一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。(默认为None)

注意:创建的是新字典,调用该方法的字典是不变的

参数:

seq -- 字典键值列表。

value -- 可选参数, 设置键序列(seq)的值。

>>>seq =('name','age','sex')

>>>dict = dict.fromkeys(seq)

>>>print (str(dict))

{'age':None,'name':None,'sex':None}

>>>dict = dict.fromkeys(seq, 10)

>>>print (str(dict))

{'age':10,'name':10,'sex':10}

查询与遍历方法

get

(key,default=None)

返回指定键的值,如果值不在字典中返回默认值。

参数

key -- 字典中要查找的键。

default -- 如果指定键的值不存在时,返回该默认值值。返回值返回指定键的值,如果值不在字典中返回默认值None。

items()

以列表(Python2.x/迭代器对象(Python3.x)返回可遍历的(, ) 元组数组

注意:返回时并没有遵循特定次序

>>>dict ={'Name':'Runoob','Age':7}

>>>dict.items()

dict_items([('Age',7),('Name','Runoob')])

 

keys()

以列表(Python2.x/迭代器对象(Python3.x)的形式返回一个字典所有的键。

values()

以列表(Python2.x/迭代器对象(Python3.x)的形式返回一个字典所有的值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值