zoukankan      html  css  js  c++  java
  • python学习之字典

    #coding:utf-8
    __author__ = 'Administrator'
    from copy import deepcopy
    #字典由多个键及其对应的值构建的对组成,键是唯一的,值并不唯一
    phonebook={'lyq':6589,'ming':9878,'tong':4586}
    #1.dict函数,可以用来通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典
    item=[('nn','bb'),('age',89)]
    d=dict(item)
    print d
    dd=dict(name='gaoli',age=42)
    print dd

    #字典的基本操作
    #1.len(d)返回d中像(键-值)对的数量
    print len(dd)
    #3.d[k]返回关联到k上的值
    print dd['name']
    #4.d[k]=v将值v关联到键k上
    dd['name']='meimei'
    print dd
    #5.del d[k] 删除键为k的项
    del dd['name']
    print dd
    #6. k in d 检查d中是否有含有键为K的项
    if 'age' in d:
    print d['age']

    #字典格式化
    print "lyq's phone number is %(lyq)s."%phonebook

    #字典方法
    #1.clear 方法清除字典中的所有的项,原地操作无返回值
    d={}
    d={'mali':78}
    d.clear()
    print d
    #2.copy :返回一个具有相同键值对的新字典(这个方法实现的是浅复制,因为值本身就是相同的,而不是副本)
    #副本替换值原字典不变,删除和增加原字典改变
    d={'mali':78,'shasha':['foo','bar','que']}
    dy=d.copy()
    dy['mali']=45
    dy['shasha'].remove('bar')
    dy['shasha'].append('kkk')
    print 'dy',dy
    print 'd',d
    #3.deepcopy 深复制,复制其包含的所有值
    d={'mali':78,'shasha':['foo','bar','que']}
    dy=deepcopy(d)
    dy['mali']=45
    dy['shasha'].remove('bar')
    print 'dy',dy
    print 'd',d
    #4.fromkeys 用来给定的键建立新的字典,每个键默认对应的值为None,也可以给指定的值
    li=['mali','lyq']
    mm=dict.fromkeys(li)
    print mm
    mm=dict.fromkeys(li,'jj')
    print mm
    #5.get方法是个更宽松的访问字典项的方法,访问不存在的项会会得到None值(或自己设置的值)
    d={'mali':78,'shasha':['foo','bar','que']}
    print d['mali']
    # print d['kk'] 报错
    print d.get('kk')
    print d.get('kk','jj')
    #6.has_key方法可以检查字典中是否含有给出的键,有返回True,python 3.0没有该函数
    print 'has_key',d.has_key('mali')
    #7.items方法将所有的字典项以列表的方式返回,这些列表项中的每一项都来自于(键,值)
    d={'mali':78,'shasha':85}
    print d.items()
    #iteritems 方法的作用大致相同,但是会返回一个迭代器对象而不是列表
    it=d.iteritems()
    print it
    print list(it)
    #8.keys 方法将字典中的键以列表的形式返回,而iterkeys则返回针对键的迭代器
    print d.keys()
    i=d.iterkeys()
    print i
    print list(i)
    #9.pop 方法用来获得对应于给定键的值,然后将这个键-值对从字典中移除
    d={'mali':78,'shasha':85}
    d.pop('mali')
    print d
    #popitem 方法类似于list.pop,后者会弹出列表的最后一个元素,但不同的是,popitem弹出的是随机的项,因为自费的那没有“最后的元素”或其他有关书序的概念
    d={'mali':78,'shasha':85}
    d.popitem()
    print d
    #10.setdefault 方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,除此外,setdefault还能再字典中不含有给定键的情况下设定相应的键值
    d={}
    d.setdefault("name",'n/a')
    print d
    d['name']='ali'
    d.setdefault('name','n/a')
    print d
    #当键不存在时,setdefault返回默认值并且相应的更新字典,如果键存在就返回与其对应的值,但不改变字典
    #11.update 方法可以利用一个字典项更新 另外一个字典
    d={'title':'python web site','url':'www.python.com','changed':'mar'}
    x={'title':'python language web site'}
    d.update(x)
    print d
    # values和itervalues 方法以列表的形式返回字典中的值(itervalues返回的是迭代器),与返回键的列表不痛的是,返回值的列表中可以包含重复元素
    d={}
    d[1]=1
    d[2]=3
    d[3]=2
    d[4]=1
    print d.values()

  • 相关阅读:
    cf D. Vessels
    cf C. Hamburgers
    zoj 3758 Singles' Day
    zoj 3777 Problem Arrangement
    zoj 3778 Talented Chef
    hdu 5087 Revenge of LIS II
    zoj 3785 What day is that day?
    zoj 3787 Access System
    判断给定图是否存在合法拓扑排序
    树-堆结构练习——合并果子之哈夫曼树
  • 原文地址:https://www.cnblogs.com/qingo/p/5899032.html
Copyright © 2011-2022 走看看