zoukankan      html  css  js  c++  java
  • python:字典

    字典(dictionary)是除列表之外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取,这个键可以是数字、字符串甚至元组。映射可以使用任何不可变对象标识元素,最常用的类型是字符串和元组,python唯一内建的映射类型是字典。

    语法:

    >>> info = {
    ...     'stu1101': "TengLan Wu",
    ...     'stu1102': "LongZe Luola",
    ...     'stu1103': "XiaoZe Maliya",
    ... }

    字典的特性:

    • dict是无序的
    • key必须是唯一的,天生去重

    增加

    >>> info["stu1104"] = "wangzhaoyang"
    >>> info
    {'stu1101': 'TengLan Wu', 'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1104': 'wangzhaoyang'}

    修改

    >>> info["stu1101"] = "ligang"
    >>> info
    {'stu1101': 'ligang', 'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1104': 'wangzhaoyang'}

    删除

    >>> info
    {'stu1101': 'ligang', 'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1104': 'wangzhaoyang'}
    >>> info.pop("stu1102") #常用删除方法
    'LongZe Luola'
    >>> info
    {'stu1101': 'ligang', 'stu1103': 'XiaoZe Maliya', 'stu1104': 'wangzhaoyang'}
    >>> del info["stu1103"]
    >>> info
    {'stu1101': 'ligang', 'stu1104': 'wangzhaoyang'}

     >>> info
     {'stu1101': 'ligang', 'stu1104': 'wangzhaoyang', 'stu1102': 'zhanglei'}
     >>> info.pop
     info.pop( info.popitem(
     >>> info.popitem() ###随机删除
     ('stu1102', 'zhanglei')
     >>> info
     {'stu1101': 'ligang', 'stu1104': 'wangzhaoyang'}

    查找

    >>> info
    {'stu1101': 'ligang', 'stu1104': 'wangzhaoyang', 'stu1102': 'zhanglei', 'stu1103': 'liyang'}
    >>> "stu1102"  in info
    True
    >>> info.get("stu1101")
    'ligang'
    >>> info.get("stu1105")  ##get查找,如果存在则返回,不存在不会报错
    >>> info["stu1101"]
    'ligang'
    >>> info["stu1105"]  #存在则返回,不存在则报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'stu1105'

    items #将一个字典转换为元组

    >>> info.items()
    dict_items([('stu1101', 'ligang'), ('stu1104', 'wangzhaoyang'), ('stu1102', 'zhanglei'), ('stu1103', 'liyang')])

    key values

    #values
    >>> info.values()
    dict_values(['LongZe Luola', 'XiaoZe Maliya'])
    
    #keys
    >>> info.keys()
    dict_keys(['stu1102', 'stu1103'])

    多级嵌套

    people ={
         'Jason':{
            'phone':'2341',
            'addr':'Foo drive 23'
             },
         'James':{
            'phone':'4564',
            'addr':'Bar street 42'
             },
         'Jzhou':{
            'phone':'4564',
            'addr':'Baz avenue 90'
             }
        }
    people["James"]["phone"] = "10000"
    >>> people
    {'Jason': {'phone': '2341', 'addr': 'Foo drive 23'}, 'James': {'phone': '10000', 'addr': 'Bar street 42'}, 'Jzhou': {'phone': '4564', 'addr': 'Baz avenue 90'}}

    循环字典

    #方法1
    for key in info:
        print(key,info[key])
    
    #方法2
    for k,v in info.items(): #会先把dict转成list,数据里大时莫用
        print(k,v)

    将字典key-value翻转

    a={1:10,2:20,3:30}
    b={v:k for k,v in a.items()}
    
    
    # 第二种方法
    dict(map(reversed, a.items()))
  • 相关阅读:
    springboot整合Quartz框架
    安装 和 配置 HBase
    HBase 安装之后版本的验证的bug:(错误的替换、找不到或无法加载主类、SLF4J)
    HBase基本知识和应用场景
    修改idea的临时数据存放目录(默认保存在C盘用户目录下的.IntelliJIdea2020.3)
    Eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法(关于快捷键失效原因可能是与输入法的快捷键冲突)
    参考大数据厦门大学林子雨编著的《大数据技术原理与应用(第3版)》中第三课《HDFS编程实践(Hadoop3.1.3)》遇到的bug
    框架设计思维符合语义即可使用,而不用关心底层的实现
    Ubuntu下无法输入中文问题解决
    HDFS编程实践(Hadoop3.1.3)
  • 原文地址:https://www.cnblogs.com/wzy23/p/11424625.html
Copyright © 2011-2022 走看看