zoukankan      html  css  js  c++  java
  • python中字典的几个方法介绍

    创建字典

    >>> phonebook={'Alice':'2897','Alan':'0987','Jery':'6754'}

    dict函数

    >>> items=[('name','Gumby'),('age',42)]
    >>> d=dict(items)
    >>> d
    {'age': 42, 'name': 'Gumby'}
    >>> d['name']
    'Gumby'
    >>> d=dict(name='July',age=24)
    >>> d
    {'age': 24, 'name': 'July'}

    基本的字典操作(大部分与序列类似)

    • len(d)返回d中项(键-值对)的数量
    • d[k]返回关联到键k上的值
    • d[k]=v将值v关联到k上
    • del d[k]删除键为k的项
    • k in d检查d中是否有含有键为k的项

    格式化字符串

    >>> phonebook
    {'Jery': '6754', 'Alice': '2897', 'Alan': '0987'}
    >>> "Alan's phone number is %(Alan)s." % phonebook
    "Alan's phone number is 0987."

    方法:

    clear 清除字典中所有的项

    >>> d={}
    >>> d['name']='Gumby'
    >>> d['age']=42
    >>> d
    {'age': 42, 'name': 'Gumby'}
    >>> d.clear()
    >>> d
    {}
    
    >>> x={}
    >>> y=x #x和y对应同一个字典
    >>> x['key']='value'
    >>> y
    {'key': 'value'}
    >>> x={} #x关联到新的空字典
    >>> y
    {'key': 'value'}
    
    >>> x={}
    >>> y=x
    >>> x['key']='value'
    >>> y
    {'key': 'value'}
    >>> x.clear()
    >>> y
    {}

    copy 返回一个具有相同键-值对的新字典(浅复制)

    >>> x={'name':'admin','machines':['foo','bar','bax']}
    >>> y=x.copy()
    >>> y['name']='yhk' #替换值,原字典不受影响
    >>> y['machines'].remove('bar') #修改了某个值(原地修改不是替换),原字典会改变
    >>> y
    {'name': 'yhk', 'machines': ['foo', 'bax']}
    >>> x
    {'name': 'admin', 'machines': ['foo', 'bax']}

    deepcopy 深复制

    >>> from copy import deepcopy
    >>> d={}
    >>> d['name']=['Aly','Bob']
    >>> c=d.copy()
    >>> e=deepcopy(d)
    >>> d['name'].append('Ageal')
    >>> c
    {'name': ['Aly', 'Bob', 'Ageal']}
    >>> e
    {'name': ['Aly', 'Bob']}

    fromkeys 使用给定的键建立新的字典,每个键默认的对应的值为none

    >>> {}.fromkeys(['name','age'])
    {'age': None, 'name': None}
    >>> dict.fromkeys(['name','age'])
    {'age': None, 'name': None}
    >>> dict.fromkeys(['name','age'],'(unknown)')
    {'age': '(unknown)', 'name': '(unknown)'}

     get 访问字典项

    >>> d={}
    >>> print d['name']
    
    Traceback (most recent call last):
      File "<pyshell#60>", line 1, in <module>
        print d['name']
    KeyError: 'name'
    >>> print d.get('name')
    None
    >>> d.get('name','N/A')
    'N/A'
    >>> d['name']='Eric'
    >>> d.get('name')
    'Eric'

    has_key 检查字典中是否有给出的键(python3.0没有这个函数)

    >>> d={}
    >>> d.has_key('name')
    False
    >>> d['name']='Eric'
    >>> d.has_key('name')
    True

    items和iteritems 

    items将所有的字典项以列表方式返回,这些列表项中的每一项都来自于(键,值)

    iteritems返回一个迭代器对象

    >>> d={'title':'My Time!','url':'http://www,python.org','spam':0}
    >>> d.items()
    [('url', 'http://www,python.org'), ('spam', 0), ('title', 'My Time!')]
    >>> s=d.iteritems()
    >>> s
    <dictionary-itemiterator object at 0x0000000003068728>
    >>> list(s)
    [('url', 'http://www,python.org'), ('spam', 0), ('title', 'My Time!')]

    keys和iterkeys keys将字典中的键以列表形式返回 iterkeys返回针对键的迭代器

    pop 移除

    >>> d={'x':1,'y':2}
    >>> d.pop('x')
    1
    >>> d
    {'y': 2}

     popitem 移除随机的项

    >>> d={'x':1,'y':2}
    >>> d.popitem()
    ('y', 2)
    >>> d
    {'x': 1}

     setdefault 当键不存在时,返回默认值并更新相应字典

    >>> d={}
    >>> d.setdefault('name','N/A')
    'N/A'
    >>> d
    {'name': 'N/A'}
    >>> d['name']='Gumby'
    >>> d.setdefault('name','N/A')
    'Gumby'
    >>> d
    {'name': 'Gumby'}

    update 利用一个字典项更新另外一个字典

    >>> d={'x':1,'y':2,'z':3}
    >>> f={'y':5}
    >>> d.update(f)
    >>> d
    {'y': 5, 'x': 1, 'z': 3}

    values和itervalues  alues返回字典中的值(itervalues返回值的迭代器)

    >>> d={}
    >>> d[1]=1
    >>> d[2]=2
    >>> d[3]=3
    >>> d.values()
    [1, 2, 3]
  • 相关阅读:
    bs4解析错误之 bs4 FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml.
    UI自动化之selenium元素定位不到问题的原因有哪几种?
    selenium定位:出现Message: element not interactable 元素不可交互的问题解决方案
    JS--编码规范
    JS操作数组-2
    JS-数组操作3
    JS操作数组
    用JS解决url地址中参数乱码的问题
    数组去重--ES5和ES6
    选择排序
  • 原文地址:https://www.cnblogs.com/nsds/p/6437553.html
Copyright © 2011-2022 走看看