zoukankan      html  css  js  c++  java
  • Python学习笔记之字典

    一、创建和使用字典

    1、创建字典

    phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'}

    2、dict,通过映射创建字典

    >>> items=[('name','Gumby'),('age',34)]

    >>> d=dict(items)

    >>> d

    显示:{'name':'Gumby','age':'34'}

    dict,通过关键字创建字典

    >>> d=dict(name='Gumby',age=34)

    >>> d

    显示:{'name':'Gumby','age':'34'}

    3、字典格式化字符串

    >>> phonebook{'Beth':'9102','Alice':'2334','Cecil','3258'}

    >>> "Cecil's phone number is %(Cecil)s." % phonebook

    显示:"Cecil's phone number is 3258"

    4、clear,清除字典中的全部项

    5、copy,返回一个具有相同键-值对的新字典,这个方法实现的是浅复制

    >>>x={'username':'admin','machines':['foo','bar','baz']}

    >>>y=x.copy()

    >>>y['username']='mlh'

    >>>y['machines'].remove('bar')

    >>>y

    显示:{'username':'mlh','machines':['foo','baz']}

    >>>x

    显示:{'username':'admin','machines':['foo','baz']}

    注意两个结果的区别:在副本y中替换username的值不会改变x中的值,但是修改副本y中的machines的值,则会改变x中的值

    deepcopy,深度复制,可以解决上面的问题

    >>> from copy import deepcopy

    >>> d={}

    >>> d['names']=['Alfred','Bertrand']

    >>> c=d.copy()

    >>> dc=deepcopy(d)

    >>> d['names'].append('Clive')

    >>> c

    显示:{'names':['Alfred','Bertrand','Clive']}

    >>> dc

    显示:{'names':['Alfred','Bertrand']}

    6、fromkeys,使用给定的键建立新的字典

    >>> {}.fromkeys(['name','age'])

    显示:{'name':None,'age':None}

    采用dict的方法创建字典

    >>> dict.fromkeys(['name','age'],'(123)') #默认值是可选的

    显示:{'name':'123','age':'123'}

    7、get,用来访问字典项

    >>> d={}

    >>> print(d['name']) #此时会报错,说name键不存在

    >>>print(d.get('name')) #此时不会报错,输出None

    >>> print(d.get('name','N/A')) #还可以指定默认值

    8、has_key,检查字典中是否含有指定的键,在V2.6之后,V3.0之前有用,

    >>> d={}

    >>> d.has_key('name')

    显示: False

    从V3.0开始,采用in的方式判断

    >>> 'name' in d

    显示:False

    9、items,返回一个迭代器对象

    >>> d={'title':'Python Web Site','url':'http://www.python.org','spam':0}

    >>> d.items()

    显示:dict_items([('url','http://www.python.org'),('title','Python Web Site'),('spam',0)])

    10、pop,将指定的键-值对从字典中删除

    >>> d={'x':1,'y':2}

    >>> d.pop('x')

    显示:1

    >>> d

    显示:{'y':2}

    11、popitem,弹出随机项

    12、setdefault,在某种程度上类似于get,并且还能在字典中不含有给定键的情况下设定相应的键值

    >>> d={}

    >>> d.setdefault('name','N/A')

    显示:'N/A'

    >>> d

    显示:{'name','N/A'}

    >>> d['name']='Gumby'

    >>> d.setdefault('name','N/A')

    显示:'Gumby'

    >>> d

    显示:{'name':'Gumby'}

    13、update,可以利用一个字典更新另一字典

    >>> d={

      'title':'Python Web Site',

      'url':'http://www.python.org',

      'changed':'Mar 14 22:09:15 MET 2008'

    }

    >>> x={'title':'Python Language WebSite'}

    >>> d.update(x)

    >>> d

    显示:

    {

      'title':'Python Language Website',

      'url':'http://www.python.org',

      'changed':'Mar 14 22:09:15 MET 2008'

    }

    14、Values,返回值的迭代器

    >>> d={}

    >>> d[1]=1

    >>> d[2]=2

    >>> d[3]=3

    >>> d[4]=1

    >>> d.values()

    显示:dict_values([1,2,3,1])

  • 相关阅读:
    房价
    Jsrender初体验
    GCD XOR UVA
    GCD
    Aladdin and the Flying Carpet LightOJ
    HDU6035 2017多校第一场1003 树形DP
    F
    C
    B
    An Easy Physics Problem HDU
  • 原文地址:https://www.cnblogs.com/xiaofoyuan/p/5531269.html
Copyright © 2011-2022 走看看