zoukankan      html  css  js  c++  java
  • 字典

    引子

    之前我们已经学过了字典和元祖,我们可以把全班同学的名字保存在列表中,并能够对这些名字进行增删改查了。现在我们又有了一个新的需求,我们不仅要保存每个同学的姓名,还想要保存他的年龄、身高等等。应该如何保存呢?

    这里可以引导学生像组合列表这里思考:[[name,age,high],[],……,[]]

    但是这样就有一个问题,如果我们想修改某一个同学的信息,需要遍历整个列表,这种方式非常麻烦。

    当然我们也可以用index寻找这个学员的信息,但是前提是我们必须知道这个学员的姓名年龄和身高,这样我们使用这个列表的成本就太高了。。。

    这个时候就需要有新的数据类型来支撑我们的需求。

    字典的定义与特性

    字典是Python语言中唯一的映射类型。

    定义:{key1:value1,key2:value2}

    1、键与值用冒号“:”分开;
    2、项与项用逗号“,”分开;
    

    特性:

    1.key-value结构
    2.key必须可hash、且必须为不可变数据类型、必须唯一
    3.可存放任意多个值、可修改、可以不唯一
    4.无序
    

    字典的创建与常见操作

    字典的创建

    person = {"name": "alex", 'age': 20}
    #或
    person = dict(name='seven', age=20)
    #或
    person = dict({"name": "egon", 'age': 20})
    #或
    
    person = dict((['name','苑昊'],['文周',18]))
    {}.fromkeys(seq,100) #不指定100默认为None
    #注意
    >>> dic={}.fromkeys(['k1','k2'],[])
    >>> dic
    {'k1': [], 'k2': []}
    >>> dic['k1'].append(1)
    >>> dic
    {'k1': [1], 'k2': [1]}
    

    字典的常见操作

    键、值、键值对
        1、dic.keys() 返回一个包含字典所有KEY的列表;
        2、dic.values() 返回一个包含字典所有value的列表;
        3、dic.items() 返回一个包含所有(键,值)元祖的列表;
        4、dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
    新增
        1、dic['new_key'] = 'new_value';
        2、dic.setdefault(key, None) ,如果字典中不存在Key键,由 dic[key] = default 为它赋值;_
    删除
        1、dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
        2、dic.clear() 删除字典中的所有项或元素;    
    修改
        1、dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值;
        2、dic.update(dic2) 将字典dic2的键值对添加到字典dic中
    查看
        1、dic['key'],返回字典中key对应的值,若key不存在字典中,则报错;
        2、dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
    循环
        1、for k in dic.keys()
        2、for k,v in dic.items()
        3、for k in dic
    长度
        1、len(dic)
    
  • 相关阅读:
    LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
    RTSP可用网络流
    Linux访问Github缓慢
    Ubu18.0-NVIDIA显卡驱动重装
    FFMPEG第一次学习
    QT-守护程序
    QT-局域网探测工具(简易版)--Ping
    QT-notepad++仿写
    Ubuntu 解压文件
    Ubuntu -换源
  • 原文地址:https://www.cnblogs.com/ricemi/p/7753164.html
Copyright © 2011-2022 走看看