05, day05_ diccionario CRUD

Diccionario de conocimiento

  • POR QUÉ

    • Lista puede almacenar grandes cantidades de datos, pero la correlación entre los datos no es fuerte
    • Una lista de velocidad de las consultas es más lento
  • ¿QUÉ tipo de datos de contenedores: dict

  • CÓMO

    • Tipo de datos de clasificación (variable y no variable):

      • Variable (no hash) tipos de datos: lista (lista), Diccionario (dict), Colección (conjunto)

      • Inmutables (hashable) tipos de datos: str, bool, int, tuple (tuple)

        Lo que es inmutable: una vez que el anterior cuatro tipos de definiciones de variables, se llevará algo de espacio para almacenar el valor de esta variable en la memoria

        Independientemente de si las variables re-asignación, el espacio de memoria original está siempre ocupada, es decir, re-re-asignación de espacios verdes en un nuevo espacio de memoria:

        variable operativo dirección de memoria
        str asignación Dirección 1: "Murphy"
        De nuevo asignado a str Dirección 2: "Mike"

        Como muestra la tabla, la reasignación, los restos de memoria "Murphy" que no desaparecerán, solo cambia la variable a punto a la str

    • Diccionario: {} cerrado envase tipo de datos almacenado en la forma de pares de valores clave:

      • dic = {
            'Murphy':
                 {'name': '老杨', 'age': 18, 'sex': '男'},
            'Python学习':
                 ['Murpht', '老杨', 'Mikie', '嘻嘻']
        }
        
      • Clave, debe ser inmutables tipos de datos: str, int ,,, (bool, tupla, y el valor casi no booleana cuando el tuple de clave) y es el único

      • # 验证字典的合法性:
        dic = {[1,2,3]:'murphy', 1 : 666}  # 错误,不能用可变数据类型当‘键’(list)
        print(dic)
        dic = {1: 'M', 1: 'C', 2: 123}  # 如果存在两个相同的键,那么后一个会覆盖前一个 所以键要唯一
        print(dic)  # {1: 'C', 2: 123}
        
      • Valor, puede ser cualquier tipo de objeto de datos

      • Antes de diccionario de la versión 3.5 (incluyendo 3.5) se desordena.

      • Diccionario con el fin 3,6X versión se establecerá de acuerdo con la disposición inicial del diccionario, no se considera que es un académico ordenada

      • Después de la versión 3.7 del diccionario están clasificadas

      • Ventajas diccionario: velocidad de las consultas es muy rápido, hay relevancia de almacenamiento de datos

      • Deficiencia diccionario: espacio de tiempo.

    • Diccionario de creación:

      • # 方式一:
        dic = dict((('one', 1), ('two', 2), ('three', 3)))
        print(dic)  # {'one': 1, 'two': 2, 'three': 3}
        
        # 方式二:
        dic = dict(one=1, two=2, three=3)
        print(dic)  # {'one': 1, 'two': 2, 'three': 3}
        
        # 方式三(官方写法):
        dic = dict({'one': 1, 'two': 2, 'three': 3})
        print(dic)  # {'one': 1, 'two': 2, 'three': 3}
        
    • Diccionario CRUD

      • ** por: 1 directa aumentado (hay correcciones, ningún aumento); 2 setdefault (no se mantendrá sin cambios, sin aumento) **

        dic = {'name': '老杨', 'age': 18}
        # 键值对:
        # 比如酒店:键:就像房间号一样
        #           值:房间:里面放什么数据都行
        # 字典的增删改查:
        # 增:
        # 直接增加(有则改之,无则增加)
        dic['sex'] = '男'
        print(dic)
        dic['age'] = 23  # 相当于改
        print(dic)
        # setdefault 用这个方法只能新增,不能修改已有键值对(有则不变,无则增加)
        # dic.setdefault('hobby')
        # print(dic)  # {'name': '老杨', 'age': 23, 'sex': '男', 'Murphy': None}
        dic.setdefault('hobby', 'python')
        print(dic)  # {'name': '老杨', 'age': 23, 'sex': '男', 'Murphy': 'python'}
        
      • 删: pop () clear () del

        # pop 按照键去删除键值对,有返回值
        # dic.pop('age')
        ret = dic.pop('age')
        print(ret)  # 18
        print(dic)  # {'name': '老杨'}
        
        # pop第二个用法,当给pop()设置第二个参数时,不论是否有这个键,都不会报错,并且把第二个值返回
        ret = dic.pop('hobby', '没有这个键')
        print(ret)  # 没有这个键
        print(dic)  # {'name': '老杨', 'age': 18}
        
        # clear只是清空字典内容,不是删除字典
        dic.clear()
        print(dic)  #{}
        
        # del  会报错不推荐使用
        del dic['age']  # 正确写法
        del dic['hobby']  # 错误写法,没有hobby这个键,会报错不推荐使用
        print(dic)
        
      • Cambio, cambio directamente actualización

      • Buscar por clave de verificación (no se recomienda, recibirá un error si no existe la clave), get () (se recomienda, si no existe la clave volverá Ninguno)

        dic = {'name': '老杨', 'age': 18, 'hobby_list': ['python', '姑娘', '摇滚']}
        print(dic['hobby_list'])
        print(dic['hobby_list1'])  # 报错啦,不存在'hobby_list1'这个键
        
        #get
        l1 = dic.get('hobby_list')
        l1 = dic.get('hobby_list1')  # None
        print(l1)
        

Supongo que te gusta

Origin www.cnblogs.com/mikie/p/12590381.html
Recomendado
Clasificación