码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记-字典(下)

时间:2014-11-26 06:54:53      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:python 字典

     同列表和字符串一样,字典也有方法。

  1. clear 清空字典中的所有项。 

我们可以把空字典赋给某一字典来清空它当中的项。也可以使用clear方法彻底清空字典。

x= {}
y=x
x[‘age‘]=‘25‘
x[‘gender‘]=‘male‘
print x 
x.clear()
print x 
print y 


{‘gender‘: ‘male‘, ‘age‘: ‘25‘}
{}
{}

如果将 x.clear 改为 x={},则结果变为

{‘gender‘: ‘male‘, ‘age‘: ‘25‘}
{}
{‘gender‘: ‘male‘, ‘age‘: ‘25‘}

 


2. 浅复制和深复制

前者指modify copy的字典的某个值时,原始字典中该值也会改变,反之亦然。

x= {}
x[‘age‘]=[‘25‘,‘26‘,‘28‘]  #List
x[‘gender‘]=‘male‘ #String
y=x.copy()
x[‘age‘].remove(‘25‘)
y[‘age‘].remove(‘26‘)
print x 
print y 


{‘gender‘: ‘male‘, ‘age‘: [‘28‘]}
{‘gender‘: ‘male‘, ‘age‘: [‘28‘]}

如果使用深度复制deepcopy,原字典和拷贝字典间完全独立

from copy import deepcopy
x= {}
x[‘age‘]=[‘25‘,‘26‘,‘28‘]  #List
x[‘gender‘]=‘male‘ #String
y=deepcopy(x)
x[‘age‘].append(‘25‘)
y[‘age‘].remove(‘26‘)
print x 
print y 
{‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘26‘, ‘28‘, ‘25‘]}
{‘gender‘: ‘male‘, ‘age‘: [‘25‘, ‘28‘]}


3. fromkeys 使用给定的keys创造一个字典,默认value为None

这里看看出了什么错误?

x= {}.fromkeys(‘name‘,‘gender‘)
print x 

{‘a‘: ‘gender‘, ‘e‘: ‘gender‘, ‘m‘: ‘gender‘, ‘n‘: ‘gender‘}

正确形式为

x= {}.fromkeys([‘name‘,‘gender‘])
print x 

{‘gender‘: None, ‘name‘: None}


4. get 可访问一个字典中不存在的项

x= {}
print x.get(‘age‘)
None

可响应用户输入字典中没有的项,更加灵活

几个比较简单的方法:

5. has_key 用于检查字典中是否有指定键,也可用 in 实现。

6. pop 用于获得给定键的值并将这一项从字典删去。

info = {
        ‘Alice‘: {
                ‘phone‘:‘2342‘,
                ‘addr‘:‘taierzhuang rd‘},
        ‘Bob‘:{
               ‘phone‘:‘2242‘,
                ‘addr‘:‘jinqiao rd‘}
        }
info.pop(‘Alice‘)
print info
{‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}}


7.setdefault用于添加键(可在键不存在的情况下添加键值,同get不一样的是它会改变原字典)

8.items & iteritems

items 以列表的形式返回字典中的项,iteritems返回一个迭代器

info = {
        ‘Alice‘: {
                ‘phone‘:‘2342‘,
                ‘addr‘:‘taierzhuang rd‘},
        ‘Bob‘:{
               ‘phone‘:‘2242‘,
                ‘addr‘:‘jinqiao rd‘}
        }
print info
print info.items()
print info.iteritems()
{‘Bob‘: {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}, ‘Alice‘: {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘}}
[(‘Bob‘, {‘phone‘: ‘2242‘, ‘addr‘: ‘jinqiao rd‘}), (‘Alice‘, {‘phone‘: ‘2342‘, ‘addr‘: ‘taierzhuang rd‘})]
<dictionary-itemiterator object at 0x10a200a48>

相同的,keys 和 iterkeys返回键,values和itervalues返回值。

9.update 利用一个字典的项更新另一个。

d={
    ‘title‘:‘Python web site‘,
    ‘url‘:‘http://www.python.org‘,
    ‘changed‘:‘April 4 20:18 2013‘
    }
x={‘title‘:‘Python Language Website‘}
print d.update(x)

注意此时输出None,不知道为什么,把上面最后一步分开写:

d.update(x)
print d
{‘url‘: ‘http://www.python.org‘, ‘changed‘: ‘April 4 20:18 2013‘, ‘title‘: ‘Python Language Website‘}










Python学习笔记-字典(下)

标签:python 字典

原文地址:http://bretoncrepe.blog.51cto.com/9590251/1582534

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!