zoukankan      html  css  js  c++  java
  • 序列之字典

    字典是“键值对”的无序可变序列,其每个元素都是“键值对”,包含:“键对象”和“值对象”,通过“键对象”迅速获取,删除,更新相应的“值对象”,“键”是任意的不可变数据,如:整数,浮点数,字符串,元组,但是字典,列表,集合这些可变对象不可作为“键”,且键是不可重复的。

    字典的创建
    1.通过{},dict()创建

     1 a = {"name":"kang","age":18,"height":180}
     2 b = dict(name="kang",age=18,height=180)
     3 c = dict([("name","kang"),("age",18),("height",180)])
     4 d = {} #空字典
     5 e = dict() #空字典
     6 print("a",a)
     7 print("b",b)
     8 print("c",c)
     9 print("d",d)
    10 print("e",e)

    运行结果:

    a {'name': 'kang', 'age': 18, 'height': 180}
    b {'name': 'kang', 'age': 18, 'height': 180}
    c {'name': 'kang', 'age': 18, 'height': 180}
    d {}
    e {}

    2.通过zip()创建

    1 k = ("name","age","height")
    2 v = ("kang",18,180)
    3 f = dict(zip(k,v))

    运行结果:
    f {'name': 'kang', 'age': 18, 'height': 180}

    字典的删除


    1.del()方法

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    del(a["job"])
    print(a)

    运行结果:

    {'name': 'kang', 'age': 18, 'height': 180}

    2.pop()删除指定键值对,并返回对应的“值对象”

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    b = a.pop("age")
    print(b)
    print(a)

    运行结果:
    18
    {'name': 'kang', 'height': 180, 'job': 'IT'}

    3.clear()方法,删除所有的键值对

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    a.clear()
    print(a)

    运行结果:

    {}

    字典的修改


    1.给存在的键重新赋值

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    a["job"] = "tester"
    print(a)

    运行结果:
    {'name': 'kang', 'age': 18, 'height': 180, 'job': 'tester'}

    2.使用 update()将新字典中所有键值对全部添加到旧字典对象上,如果key有重复,则直接覆盖。

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    b = {"age":17,"sex":""}
    a.update(b)
    print(a)

    运行结果:

    {'name': 'kang', 'age': 17, 'height': 180, 'job': 'IT', 'sex': '男'}

    字典的访问

    1.通过[键]访问,如果没有输入的键,则报错

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    b = a["name"]
    print("name is:",b)
    #c = a["fu"]  #KeyError: 'fu'  字典中没有 fu的key,所以报错
    #print(c)  #

    运行结果:

    name is kang
    2.通过get()方法访问,如果没有键,则显示None,获取元素,优先选择该方法

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    b = a.get("name")
    print("name is:",b)
    c = a.get("fu")
    print("fu is:",c)  

    运行结果:

    name is: kang
    fu is: None

    3.列出所有的键值对items()

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    print(a.items())

    运行结果:

    dict_items([('name', 'kang'), ('age', 18), ('height', 180), ('job', 'IT')])

    4.keys(),values()获取所有的键和所有的值

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    print(a.keys())
    print(a.values())

    运行结果:

    dict_keys(['name', 'age', 'height', 'job'])

    dict_values(['kang', 18, 180, 'IT'])

    5.len()键值对的个数

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    print(len(a))

    运行结果:

    4

    6.检测此键是否存在字典中

    a = {"name":"kang","age":18,"height":180,'job': 'IT'}
    print("sex" in a)
    print("name" in a)

    运行结果:

    False
    True

  • 相关阅读:
    Nginx服务器中配置非80端口的端口转发方法详解
    索引的优缺点
    redis cluster搭建
    linux 无需主机密码传输文件
    linux buffer/cache手动释放
    常用的Percona-Toolkit工具
    mysql 存储过程批量删除表
    redis(方法通用)开机自启动
    mysql 查看表的分区信息
    redis 内存分析
  • 原文地址:https://www.cnblogs.com/elephant-study/p/11760027.html
Copyright © 2011-2022 走看看