Python学习笔记【四】——《python基础教程》:: 字典:当索引不好用时

第4章 字典:当索引不好用时

4.2. 创建和使用字典

  1. 字典格式:{key: value, key: value, … key: value}
  2. 空字典:{}
  3. 字典中键唯一,值不唯一。

4.2.1. dict函数

#使用(键,值)序列对建立字典
>>> items = [('name', 'gumby'), ('age', 42)]
>>> d = dict([('name', 'gumby'), ('age', 42)])
>>> d
{'age': 42, 'name': 'gumby'}
#使用其他映射建立字典
>>> d1 = dict(d)
>>> d1
{'age': 42, 'name': 'gumby'}
#使用关键字参数来创建字典
>>> d = dict(name='gumby', age=42)
>>> d
{'age': 42, 'name': 'gumby'}

4.2.2. 基本字典操作

  1. 与序列类似操作
操作说明
len(d)返回d中项(键-值对)的数量
d[k]返回关联到键k上的值
d[k]=v将值v关联到键k上
del d[k]删除键为k的项
k in d检查d中是否有含有键为k的项

2. 与列表区别

区别项字典列表
键类型整型、浮点型、字符串串或元组等不可变类型整型
自动添加可将值关联到不存在的键,并字典中建立新项不可将值关联到列表之外的索引
成员资格查找键
(效率高,数据结构规模达时更效果更明显)
查找值

4.2.3. 字典的格式化字符串

使用方法:”string1 %(key)format string2” % dictionary

>>> "holly's phone number is %(holly)d" % {'holly':123, 'holly1':456}
"holly's phone number is 123"

4.2.4. 字典方法

1. clear:清除字典中所有的项,无返回值。
>>> d={'key1' : 1, 'key2' : 2}
>>> d
{'key2': 2, 'key1': 1}
>>> d.clear()
>>> d
{}
2. copy:返回一个具有相同键-值对的新字典。

copy方法实现的是浅复制,与其对应的是深复制,具体参照http://blog.csdn.net/heli200482128/article/details/73732072

3. fromkeys:使用给定的键建立新字典。
#使用所有字典的类型dict
#不指定值,默认为None
>>> dict.fromkeys(['name', 'age'])
{'age': None, 'name': None}
#指定值,所有键都使用相同的值
>>> dict.fromkeys(['name', 'age'],['1', '2'])
{'age': ['1', '2'], 'name': ['1', '2']}
4. get:宽松的访问字典项的方法,当访问的键不存在,不会出错。
>>> d = {}
>>> d[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
#当默认情况下,若键不存在,返回None
>>> print d.get(1)
None
#也可以指定键不存在时的返回值
>>> print d.get(1, 'N/A')
N/A
5. has_key:相当于 k in d。Python3.0中不包含此函数。
6. items和iteritems
  1. items:所有字典项以列表方式返回,列表项来自于(键,值)。但是列表项无特殊顺序。

    >>> {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}.items()
    [('phone', 123), ('name', 'holly'), ('addr', 'shandongyantai')]
    
  2. iteritems:返回字典项的迭代器

    >>> it = {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}.iteritems()
    >>> it
    <dictionary-itemiterator object at 0x7fcdbbd7dcb0>
    >>> list(it)
    [('phone', 123), ('name', 'holly'), ('addr', 'shandongyantai')]
    
7. key和iterkeys
  1. keys:字典中键以列表形式返回。
  2. iterkeys:返回键的迭代器。
8. pop:获得对应给定键的值,将这个键-值对从字典中移除。
>>> d = {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}
>>> d.pop('name')
'holly'
>>> d
{'phone': 123, 'addr': 'shandongyantai'}
9. popitem:弹出字典中随机项。
>>> d = {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}
>>> d.popitem()
('phone', 123)
>>> d
{'name': 'holly', 'addr': 'shandongyantai'}
>>> d.popitem()
('name', 'holly')
>>> d
{'addr': 'shandongyantai'}

常用于依次移除并处理项。

10. setdefault:获得与给定键相关联的值,字典中不含有给定键的情况下设定键值。
#当键不存在时,返回默认值并更新字典
>>> d.setdefault('name', 'N/A')
'N/A'
>>> d
{'name': 'N/A'}
#当键存在时,返回与其对应的值,但不改变字典。
>>> d['phone'] = 123
>>> d
{'phone': 123, 'name': 'N/A'}
>>> d.setdefault('phone', 'N/A')
123
>>> d
{'phone': 123, 'name': 'N/A'}
11. update:利用字典项更新另一个字典
#字典中的项若键不存在于字典中,则该项会添加到就字典中;若键存在于字典中,字典中相应键值被覆盖
>>> d = {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}
>>> d.update({'newkey': 'newvalue', 'phone': 456})
>>> d
{'phone': 456, 'name': 'holly', 'newkey': 'newvalue', 'addr': 'shandongyantai'}
12. values和itervalues
  1. values:以列表形式返回字典中的值,可能包含重复元素。

    >>> d = {'name': 'holly', 'phone': 123, 'addr': 'shandongyantai'}
    >>> d.values()
    [123, 'holly', 'shandongyantai']
    
  2. itervalues:返回字典中值的迭代器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值