Python:字典

    字典是Python唯一内建的映射类型。字典中的值没有顺序,但是存储在一个特定的键下。键可以是数字、字符串、元组。键是唯一的,值并不唯一。

1 创建和使用字典

字典由多个键值对组成,可以通过下面的方式创建字典:

224810_W7IX_2257245.png

1.1 dict函数

用dict函数,通过其它映射或键值对的序列创建字典,也可以通过关键字参数来创建字典,如下:

224837_y9k4_2257245.png

1.2 字典与列表的区别

  • 键类型:字典的键可以是任意的不可变类型;
  • 自动添加:即使键起初不在字典中,也可以为它赋值;
  • 成员资格:表达式k in d(d为字典)查找的是键,而不是值。表达式v in l(l为列表)查找的是值,而不是索引。

在字典中检查键的成员资格比在列表中检查值的成员资格更高效,数据规模越大,效率差距越明显。

1.3 字典的格式化字符串

224501_pev5_2257245.png

1.4 字典方法

(1)clear:清除字典所有的项。这个是原地操作,无返回值。

224732_64YD_2257245.png

(2)copy:返回一个具有相同键值对的新字典(浅复制)

225330_pVZ0_2257245.png

x和y中的machines仍然指向同一个列表,所以修改y中machines值的时候x中的machines也被修改。要解决这个问题,需要使用深复制。

225833_OBMW_2257245.png

(3)fromkeys:使用给定的键建立新的字典,每个键都对应一个默认的值None,也可以自己提供默认值。

230156_2Wwo_2257245.png

(4)get:访问字典项,相比于[key]更宽松,因为后者在访问不存在的项时会出错,但是get则不会有任何异常,而是返回None,还可以自定义默认值。

230530_bkGW_2257245.png

(5)has_key:检查字典中是否含有指定的键。Python3.x中不包括这个函数,可以使用in来检查。

230740_9b8W_2257245.png
(6)items和iteritems,keys和iterkeys,values和itervalues:

items和iteritems:将字典所有的项以列表方式返回,列表中的每一项都是键值对的形式,区别是items返回列表,iteritems返回一个迭代器对象,后者更加高效。Python3.x 里

iteritems已经废除,用 items()替换iteritems() 。

keys和iterkeys:将字典中所有的键以列表的形式返回,而iterkeys返回键的迭代器。Pythons3.x里用keys()替换iterkeys()。

values和itervalues:将字典中所有的值以列表的形式返回,而iterkeys返回值的迭代器。Pythons3.x里用values()替换itervalues()。

233224_TNBQ_2257245.png

(7)pop和popitem:

pop:获得对应给定键的值,然后将该键值对从字典中移除,给定键不存在时,会出现异常。

popitem:弹出随机项。

232123_GX62_2257245.png

(8)setdefault:获得与给定键相关联的值,还能在字典不含给定键的情况下设定相应的键值。

232550_zln7_2257245.png

(9)update:利用一个字典更新另外一个字典。

232956_C7Sq_2257245.png

转载于:https://my.oschina.net/u/2257245/blog/1630710

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值