python基础笔记 - 字典:当索引不好用时

1. dict函数,通过其他映射或者(键,值)这样的序列对简历字典

 1 >>> items = [('name', 'Gumby'), ('age', 42)]
 2 >>> d = dict(items)
 3 >>> d
 4 {'age': 42, 'name': 'Gumby'}
 5 >>> d['name']
 6 'Gumby'
 7 >>> d = dict(name='Gumby', 'age'=42)
 8 SyntaxError: keyword can't be an expression
 9 >>> d = dict(name='Gumby', age = 42)
10 >>> d
11 {'age': 42, 'name': 'Gumby'}
12 >>>

k in d 检查d中是否有含有键为k的项。

键类型:字典的键不一定为整形数据,也可能是其他不可变类型,比如浮点型、字符串或者元组。

自动添加:即使那个键起初在字典中并不存在,也可以为他分配一二值,这样字典就会建立新的项,而不是用类似appen的添加方法

成员资格:表达式 k in d 查找的是键,而不是值。

1 >>> phonebook = {'Beth':'9102', 'Alice':'2341', 'Cecil': '3258'}
2 >>> "Cecil's phone number is %(Cecil)s." % phonebook
3 "Cecil's phone number is 3258."
4 >>> 

2. 字典方法

2.1 clear方法清除字典中所有的项原地操作,无返回值。

2.2 copy方法(浅复制)关于浅拷贝和深拷贝,参考:http://python.jobbole.com/82294/

2.3 fromkeys(键,值)

1 {}.fromkeys('name', 'age')
2 {'a': 'age', 'e': 'age', 'm': 'age', 'n': 'age'}
3 #键使用列表提供,值为None
4 >>> dicta = {}.fromkeys(['name', 'age'])
5 >>> dicta
6 {'age': None, 'name': None}
7 #键和值
8 >>> dict.fromkeys(['name', 'age'], 'unknown')
9 {'age': 'unknown', 'name': 'unknown'}

2.4 get方法,如果试图访问字典中不存在的键时会出错“KeyError”,而get方法就不会。

 1 >>> d = {}
 2 >>> d['name']
 3 
 4 Traceback (most recent call last):
 5   File "<pyshell#18>", line 1, in <module>
 6     d['name']
 7 KeyError: 'name'
 8 >>> d.get('name')
 9 >>> d['name'] = 'Eric'
10 >>> d.get('name')
11 'Eric'

2.5 has_key方法(3.0以后没有此方法),相当远 k in d ,返回True和False

2.6 items和iteritems,items方法将所有的字典项以列表方式返回,列表项中的每一项来自于(键,值),但是项在返回时没有特殊的顺序。

1 >>> d = {'title':'Python Web Site', 'url': 'http://www.pythonorg', 'spam':0}
2 >>> d.items()
3 [('url', 'http://www.pythonorg'), ('spam', 0), ('title', 'Python Web Site')]

iteritems方法的作用大致相同,返回一个迭代器对象而不是列表

>>> it = d.iteritems()
>>> it
<dictionary-itemiterator object at 0x03632270>
>>> list(it)
[('url', 'http://www.pythonorg'), ('spam', 0), ('title', 'Python Web Site')]

2.7 keys和iterkeys,keys方法将字典中的键以列表形式返回,而iterkeys返回键的迭代器

1 >>> d.keys()
2 ['url', 'spam', 'title']

2.8 pop方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除

1 >>> d.pop('spam')
2 0
3 >>> d
4 {'url': 'http://www.pythonorg', 'title': 'Python Web Site'}
5 >>>

popitem从列表中一项一项的移除。

 1 >>> d
 2 {'url': 'http://www.pythonorg', 'title': 'Python Web Site'}
 3 >>> d.popitem()
 4 ('url', 'http://www.pythonorg')
 5 >>> d
 6 {'title': 'Python Web Site'}
 7 >>> d.popitem()
 8 ('title', 'Python Web Site')
 9 >>> d
10 {}

2.8 d.setdefault()为键设置默认值,键不存在也可以设置默认值。如果键-值对存在,则不再返回默认值。

1 >>> d = {}
2 >>> d.setdefault('name', 'N/A')
3 'N/A'
4 >>> d
5 {'name': 'N/A'}
6 >>> d['name'] = 'Gumby'
7 >>> d.setdefault('name', 'N/A')
8 'Gumby'

2.9 update方法利用一个字典项更新另外一个字典,可以添加项,也可以覆盖原有项。

1 >>> d = {'title': 'Python Web Site',
2      'url': 'http://www.python.org',
3      'changed': 'Mar 14 22:09:15 MET 2018'}
4 >>> x = {'title': 'Python Language Webssite'}
5 >>> d.update(x)
6 >>> d
7 {'url': 'http://www.python.org', 'changed': 'Mar 14 22:09:15 MET 2018', 'title': 'Python Language Webssite'}
8 >>> 

2.10 values和itervalues,values方法以列表的形式返回字典中的值,与返回键的列表不同的是,返回值的列表可以包含重复的元素。

3 字典编码

当字典中有中文值时,直接输出字典会显示字符编码,可以使用  json.dumps(dict_name, ensure_ascii=False)  方式来获得合适的输出。

转载于:https://www.cnblogs.com/mymindview/p/8372905.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值