• 11、字典


    字典

    基本概念

    • 字典是Python中唯一的映射类型(哈希表)。
    • 字典对象是可变的,但是字典的键必须使用不可变的对象,并且一个字典中可以使用不同类型的键值。
    • keys()或者values()返回键列表或值列表。
    • items()返回包含键值对的元值。
    • 示例:
    >>> dict={'name': 'jack', 'age' : 30, 'gender':'male' }
    >>> dict['name']
    'jack'
    >>> dict['age']
    30
    >>> dict['gender']
    'male'
    >>> dict.keys()
    ['gender', 'age', 'name']
    >>> dict.values()
    ['male', 30, 'jack']
    >>> dict.items()
    [('gender', 'male'), ('age', 30), ('name', 'jack')]
    

    创建字典

    • dict = {}
    • 使用工厂方法dict()
    fdict=dict(['x',1], ['y',2])
    
    • 内建方法:fromkeys(),字典中的元素具有相同的值,默认为None
    ddict={}.fromkeys(('x','y'), -1)
    #输出结果:{'x': -1, 'y': -1}
    

    访问字典中的值

    • 直接使用key访问:key不存在会报错,可以使用has_key()或者in和not in判断,但是has_key方法即将废弃。
    • 循环遍历:for key in dict1.keys():
    • 使用迭代器:for key in dict1:

    更新和删除

    • 直接用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中。
    • del dict1['a']:删除字典中键值为a的元素
    • dict1.pop('a'):删除并且返回键为'a'的元素
    • dict1.clear():删除字典所有元素
    • del dict1:删除整个字典

    字典相关的内建函数

    • type(), str(), cmp()(cmp很少用于字典的比较,比较依次是字典的大小、键、值)

    工厂函数dict()

    * 例如:

    dict(zip(('x','y'),(1,2)))
    dict(x=1,y=2)
    #输出结果:{'x': 1, 'y': 2}
    
    • 使用字典生成字典比用copy慢,因此这种情况下推荐使用copy()

    常用函数

    • len():返回序列的大小
    • hash() : 用于判断某个对象是否可以做一个字典的键,非哈希类型报TypeError错误
    • dict.clear(): 删除字典中的所有元素
    • dict.fromkeys(seq, val=None): 以seq中的元素为键创建并返回一个字典,val为制定默认值
    • dict.get(key, default=None): 返回key的value,如果该键不存在返回default指定的值
    • dict.has_key(key):判断字典中是否存在key,建议使用in或not in代替
    • dict.items():返回健值对元组的列表
    • dict.keys():返回字典中键的列表
    • dict.iter*(): iteritems(), iterkeys(), itervalues()返回迭代子而不是列表
    • dict.pop(key[,default]):同get(),区别是若key存在,删除并返回dict[key],若不存在则返回default,未指定值,抛出KeyError异常
    • dict.setdefault(key, default=None):同set(),若key存在则返回其value,若key不存在,则dict[key]=default
    • dict.update(dict2):将dict2中的键值对添加到字典dict中,如果有重复则覆盖,原字典不存在的条目则添加进来。
    • dict.values():返回字典中所有值的列表
  • 相关阅读:
    web框架基础
    前端基础之DOM和jQuery
    前端基础之JavaScript
    前端基础之CSS
    福州大学W班-助教总结
    福州大学W班-个人最终成绩统计
    福州大学W班-Beta冲刺评分
    福州大学W班-alpha冲刺评分
    福州大学W班-团队作业-随堂小测(同学录)成绩
    福州大学W班-需求分析评分排名
  • 原文地址:https://www.cnblogs.com/zfc2201/p/8168961.html
Copyright © 2020-2023  润新知