Todos los métodos de operación del diccionario Python dict

1. Introducción

Los diccionarios son otro modelo de contenedor mutable y pueden almacenar objetos de cualquier tipo.
Cada par clave-valor clave=>valor del diccionario está separado por dos puntos: y cada par está separado por una coma (,). El diccionario completo está encerrado entre llaves {}, y el formato es el siguiente:

d = {
    
    key1 : value1, key2 : value2, key3 : value3 }

Nota: Como dict es una palabra clave y una función integrada de Python, no se recomienda nombrar la variable como dict.

dictar

La clave debe ser única, pero el valor no tiene que serlo, el valor puede tomar cualquier tipo de datos, pero la clave debe ser inmutable, como cadena, número.

La "clave" en el diccionario puede ser cualquier dato inmutable en Python, como números enteros, números reales, números complejos, cadenas, tuplas, etc., pero no puede usar listas, conjuntos y diccionarios como las "claves" de los diccionarios. porque estos objetos son variables cambiantes. Además, la "clave" en el diccionario no permite la repetición, pero se puede repetir el valor.

Nota: La clave de un diccionario en Python debe ser un número específico o una secuencia inmutable. List es una secuencia mutable que proporciona operaciones de inserción, eliminación y modificación, mientras que tuple es una secuencia inmutable y no hay funciones como append(), extend() e insert() que puedan modificar la secuencia .

2. La creación del diccionario

1. Creación manual

Cree manualmente diccionarios directamente usando el signo igual:

a_dict={
    
    'DXY':"19950819" , 'HJL':"19960424"}
print(a_dict)  #{'HJL': '19960424', 'DXY': '19950819'}
print(type(a_dict))  #<class 'dict'>  为字典类型

2. Utilice la función integrada dict() para crear

dictionary=dict( [["a",1],["b",2],["c",3]] )
print(dictionary)   #{'b': 2, 'a': 1, 'c': 3}
print( type(dictionary ))  #<class 'dict'>

Use "'key'='value'" como argumento para dict() para crear un diccionario:

a_dict=dict(name='DYX' ,  age=24)  #键=值对
print(a_dict)  #{'age': 24, 'name': 'DYX'}

3. Utilice el método dict.fromkeys() para crear

Usa el método dict.fromkeys() para crear un diccionario con un "valor" vacío dada una secuencia de "claves":

a_dict=dict.fromkeys( ['name','age','sex'] )
print(a_dict)  #{'sex': None, 'name': None, 'age': None}
#“键”是给出的序列中的元素,“值”为空。

3. Lectura de elementos del diccionario

1. Leer valor por subíndice

Similar a las listas, puede usar subíndices para acceder a los elementos del diccionario, pero la diferencia es que los subíndices del diccionario son las "claves" del diccionario, mientras que los subíndices deben ser valores enteros al acceder a listas y tuplas. Al acceder al "valor" del diccionario por subíndice, se lanza una excepción si la clave especificada no existe.

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print(a_dict['name'])  #DYX
#print(a_dict['tel'])  KeyError: 'tel' 不存在抛出异常

2. dict.get() lee Valor

Utilice el método get() del objeto de diccionario para obtener el "valor" correspondiente a la "clave" especificada y devuelva el valor especificado cuando la "clave" especificada no exista. Si no se especifica, devolverá Ninguno de forma predeterminada. En comparación con el método anterior, este método es más seguro.
Es decir: el método de índice de subíndice lanzará una excepción si la clave especificada no existe, y el método get() devolverá el valor especificado, o Ninguno.

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.get('ranking'))   #None  指定的键ranking不存在返回None
print(a_dict.get('ranking','No entry'))  #No entry  指定的键不存在,返回指定的内容No entry

3. El método keys() devuelve "keys"

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.keys())    #输出字典的键 dict_keys(['name', 'age', 'sex'])
print(type(a_dict.keys())) #查看一下类型 <class 'dict_keys'>
print(list(a_dict.keys()))  #['age', 'name', 'sex']
 
#可以用循环的方式输出
for key in a_dict.keys():
    print(key, end = " ")  #name sex age

4. El método de valores () devuelve "valores"

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.values())    #输出字典的值 dict_values(['male', 'DYX', 24])
print(type(a_dict.values())) #查看一下类型 <class 'dict_values'>
print(list(a_dict.values()))  #['male', 'DYX', 24]
#这里也可以体现字典的无序性。
 
for key in a_dict.values():
    print(key, end = " ")  #male DYX 24 

5. El método items() devuelve un par "clave-valor"

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print(a_dict.items())  #dict_items([('age', 24), ('name', 'DYX'), ('sex', 'male')])
print(type(a_dict.items()))  #<class 'dict_items'>
 
#通常用遍历来做
for item in a_dict.items():
    print(item, end = " ")  #('sex', 'male') ('name', 'DYX') ('age', 24)
#查看一下item的类型
print("\n",type(item))  # <class 'tuple'> 元组类型

La salida también se puede iterar así:

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
for key,values in a_dict.items():
    print(key,values) #单纯遍历输出两个值,所以不是元组形式
#age 24
#sex male
#name DYX

Si recorre el diccionario directamente, solo puede recorrer la "clave":

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
for item in a_dict:    #默认是遍历“键”
    print(item, end = " ")  #name age sex

4. Adición y modificación de elementos del diccionario

1. Agregar y modificar por subíndice

Cuando se usa "clave" como subíndice, si la clave existe, modifique el valor correspondiente a la clave, y si la clave no existe, agregue un nuevo par "clave-valor".

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
a_dict['name']="DDD"
print(a_dict)  #{'age': 24, 'sex': 'male', 'name': 'DDD'}
#进行了修改
 
a_dict['ranking']=15   #不存在该键,所以添加新的键值对。
print(a_dict)   #{'ranking': 15, 'age': 24, 'name': 'DDD', 'sex': 'male'}

2. El método update() agrega pares clave-valor

El método update() del objeto del diccionario puede agregar otro diccionario al diccionario actual. Si existe la misma "clave" en los dos diccionarios, el diccionario actual se actualizará según el "valor" en el otro diccionario.

a_dict = {
    
     'ranking': [98, 97] ,  'age': 24 ,  'name': 'DYX' ,  'sex': 'male' }
#字典中的“值”可以是列表、数字、字符串元组等等,是很宽泛的
#字典中的“键”要注意不能使用列表、集合、字典作为字典的“键”
print(a_dict.items())
#dict_items([('sex', 'male'), ('age', 24), ('name', 'DYX'), ('ranking', [98, 97])])
a_dict.update( {
    
    'a':'a','b':'b'} )  
print(a_dict)  #查看添加后的字典
#{'sex': 'male', 'age': 24, 'ranking': [98, 97], 'name': 'DYX', 'a': 'a', 'b': 'b'}

3. eliminar

3.1 del comando

El comando del elimina el elemento correspondiente a la "clave" especificada en el diccionario. O elimine el propio diccionario:

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
del a_dict["name"]
print(a_dict)  #{'age': 24, 'sex': 'male'}
del a_dict
print(a_dict)  #NameError: name 'a_dict' is not defined  报错
3.2 método claro()

El método clear() del diccionario elimina todos los elementos del diccionario, pero el diccionario aún existe, solo un diccionario vacío:

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
a_dict.clear()
print(a_dict)  #{}
#注意和del 的不同,del是删除整个字典,clear()方法是删除字典里面的元素。
3.3 método pop()

El método pop() elimina y devuelve el elemento en la "clave" especificada:

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
temp = a_dict.pop("name")
print(temp) #DYX
print(a_dict)  #{'age': 24, 'sex': 'male'}
3.4 método popitem ()

Devuelve y elimina el último par de clave y valor del diccionario . Eliminar y devolver el último par clave-valor insertado (clave, formato de valor), según la regla de secuencia LIFO (Last In First Out), es decir, el último par clave-valor. Si el diccionario ya está vacío y se llama a este método, se informará una excepción KeyError.
Ejemplo:

#!/usr/bin/python3

site= {
    
    'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}

# ('url': 'www.runoob.com') 最后插入会被删除
result = site.popitem()

print('返回值 = ', result)
print('site = ', site)

# 插入新元素
site['nickname'] = 'Runoob'
print('site = ', site)

# 现在 ('nickname', 'Runoob') 是最后插入的元素
result = site.popitem()

print('返回值 = ', result)
print('site = ', site)
返回值 =  ('url', 'www.runoob.com')
site =  {
    
    'name': '菜鸟教程', 'alexa': 10000}
site =  {
    
    'name': '菜鸟教程', 'alexa': 10000, 'nickname': 'Runoob'}
返回值 =  ('nickname', 'Runoob')
site =  {
    
    'name': '菜鸟教程', 'alexa': 10000}

5. Determinar si la clave está en el diccionario

para juzgar si la clave está en el diccionario:

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
print("name" in a_dict) #True
print("ranking" in a_dict) #False

6. Diccionario ordenado

El diccionario integrado de Python no está ordenado. Si necesita un diccionario que pueda recordar el orden de inserción de los elementos, puede usar collections.OrderedDict:

x=dict()   #创建一个无序字典
x['a']=3   #有就修改元素的“值”,无就在字典中更新这个“键-值对”
x['b']=5
x['c']=8
print(x)   #输出无序{'b': 5, 'c': 8, 'a': 3}
print(x.items())  #dict_items( [ ('c', 8), ('a', 3), ('b', 5) ] )
print(dict(x.items()))  # {'b': 5, 'a': 3, 'c': 8}

Nota: Después de Python 3.8, el diccionario de dictado original se admite como un diccionario ordenado

import collections
x=collections.OrderedDict()  #创建一个有序字典
x['a']=3   #有就修改元素的“值”,无就在字典中更新这个“键-值对”
x['b']=5
x['c']=8
print(x)    #OrderedDict( [ ('a', 3), ('b', 5), ('c', 8) ] )
print( dict(x) )   #又变为无序字典{'b': 5, 'a': 3, 'c': 8}

7. Copia y copia superficial del diccionario

Use el método copy() para realizar la "copia superficial" del diccionario y modifique el diccionario generado por la copia superficial sin afectar el diccionario original.

1. Copia superficial

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
b_dict = a_dict.copy()
print(b_dict)  #{'age': 24, 'name': 'DYX', 'sex': 'male'}
b_dict["name"] = "DDD"
print(b_dict)  #{'sex': 'male', 'name': 'DDD', 'age': 24}
print(a_dict)  #{'sex': 'male', 'name': 'DYX', 'age': 24}
#修改b_dict不影响a_dict

2. Copiar

a_dict = {
    
    'name':'DYX', 'sex':'male', 'age':24}
c_dict = a_dict
c_dict["name"] = "DDD"
print(c_dict)  #{'sex': 'male', 'name': 'DDD', 'age': 24}
print(a_dict) #{'sex': 'male', 'name': 'DDD', 'age': 24}
#修改c_dict等同修改a_dict

Ocho Clasificación de diccionario

1. Ordenar según "Clave":

test_dict = {
    
    "DDD":15, "CMJ":43, "HLZ":66, "HXH":39}
#依据五选排名(不懂的忽略我这句注释)
sorted_key = sorted(test_dict)
print(sorted_key )  #['CMJ', 'DDD', 'HLZ', 'HXH']
#print(type(sorted_key))  #<class 'list'>
for k in sorted_key:
    print(k, test_dict[k],end = " ")  #CMJ 43 DDD 15 HLZ 66 HXH 39

2. Ordenar según "Valor"

test_dict = {
    
    "DDD":15, "CMJ":43, "HLZ":66, "HXH":39}
sorted_value = sorted(test_dict, key=test_dict.__getitem__)
print(sorted_value)  #['DDD', 'HXH', 'CMJ', 'HLZ']
for k in sorted_value:
    print(k, test_dict[k],end = " ")  #DDD 15 HXH 39 CMJ 43 HLZ 66

3. Ordenar según artículos()

3.1 Ordenar por clave
test_dict = {
    
    "DDD":15, "CMJ":43, "HLZ":66, "HXH":39}
res = sorted(test_dict.items())
print(res)  #[('CMJ', 43), ('DDD', 15), ('HLZ', 66), ('HXH', 39)]
#等同于
res = sorted(test_dict.items(),key=lambda d:d[0])
print(res) #[('CMJ', 43), ('DDD', 15), ('HLZ', 66), ('HXH', 39)]
3.2 Clasificación por valor
res = sorted(test_dict.items(),key=lambda d:d[1])
print(res)  #[('DDD', 15), ('HXH', 39), ('CMJ', 43), ('HLZ', 66)]
3.3 Ordenar de mayor a menor: inverso=Verdadero

Los anteriores están ordenados de menor a mayor, si desea ordenar de mayor a menor, agregue reverse=True a sorted():

res = sorted(test_dict.items(),key=lambda d:d[1],reverse = True)
print(res)  #[('HLZ', 66), ('CMJ', 43), ('HXH', 39), ('DDD', 15)]

4. Con operador.itemgeter()

import operator
test_dict = {
    
    "DDD":15, "CMJ":43, "HLZ":66, "HXH":39}
##按照item中的第一个字符进行排序,即按照key排序
sort_by_key = sorted(test_dict.items(),key = operator.itemgetter(0))
print(sort_by_key)  #[('CMJ', 43), ('DDD', 15), ('HLZ', 66), ('HXH', 39)]
 
##按照item中的第一个字符进行排序,即按照value排序
sort_by_value = sorted(test_dict.items(),key = operator.itemgetter(1))
print(sort_by_value) #[('DDD', 15), ('HXH', 39), ('CMJ', 43), ('HLZ', 66)]
 
#同样可以逆序
sort_by_value = sorted(test_dict.items(),key = operator.itemgetter(1),reverse = True)
print(sort_by_value) #[('HLZ', 66), ('CMJ', 43), ('HXH', 39), ('DDD', 15)]

9. Funciones y métodos integrados del diccionario

dictar

dictar

dictar

10. Enlaces de referencia

  1. Solución completa de operación de diccionario Python (diccionario) [crear, leer, modificar, agregar, eliminar, diccionario ordenado, copia superficial, ordenar]
  2. Diccionario Python3: https://www.runoob.com/python3/python3-dictionary.html

Supongo que te gusta

Origin blog.csdn.net/flyingluohaipeng/article/details/129312124
Recomendado
Clasificación