En la sección anterior, aprendimos sobre los métodos de diccionario. En este capítulo, aprenderemos sobre diccionarios híbridos, recorrido de diccionario y derivación de diccionario.
El llamado diccionario mixto significa que los datos almacenados en el diccionario son una combinación de varios tipos. Las claves deben ser tipos de datos inmutables, pero los valores pueden ser objetos de cualquier tipo.
Primero veamos un diccionario mixto:
my_dcit={'Xiao Ming': ['Altura: 170 cm', 'Peso: 65 kg'], 'Xiao Li': 'Me encanta aprender, me encantan los deportes', 'Xiaohua': ('Residencia: Suzhou', 'Lugar de nacimiento: Shanghai ')}
Los valores de este diccionario se componen de listas, cadenas y tuplas. Podemos acceder a este diccionario mixto mediante el método del apartado anterior. Mira el siguiente fragmento de código.
my_dcit={'Xiao Ming': ['Altura: 170 cm', 'Peso: 65 kg'], 'Xiao Li': 'Me encanta aprender, me encantan los deportes', 'Xiaohua': ('Residencia: Suzhou', 'Lugar de nacimiento: Shanghai ')}print('Clave de acceso='Xiao Ming'->',my_dcit['Xiao Ming'])print('Clave de acceso='Xiaohua'->',my_dcit['Xiao Li'])print(' Acceso key='Xiaohua'->',my_dcit['Xiaohua'])print('itmes() método:',my_dcit.items())#Acceso general print('keys() método:',my_dcit.keys() )#Solo accedí a todas las claves ('método value():',my_dcit.values())#Solo accedí a valueprint('método get():',my_dcit.get('Xiao Ming'))#get Método para acceder a clave especificada my_dcit.pop('Xiao Ming') #Este paso es el método pop(), que eliminará los elementos emparejados con la clave = 'Xiao Ming' print('my_dict después del método pop(): ', my_dcit) # Ver el diccionario después de eliminarlo
Eche un vistazo al resultado:
Tecla de acceso='Xiao Ming'->['Altura: 170 cm', 'Peso: 65 kg'] Tecla de acceso='Xiaohua'->Me encanta aprender, me encantan los deportes tecla de acceso='Xiaohua'->('Residencia: Suzhou ', 'Lugar de nacimiento: Shanghai') método itmes(): dict_items([('Xiao Ming', ['Altura: 170 cm', 'Peso: 65 kg']), ('Xiao Li', 'Me encanta aprender, me encantan los deportes'), ('Xiaohua',('Residencia: Suzhou', 'Lugar de nacimiento: Shanghai'))])método de teclas(): dict_keys(['Xiaoming','Xiaoli','Xiaohua'])método de valores (): dict_values([ ['Altura: 170 cm', 'Peso: 65 kg'], 'Me encanta aprender, me encantan los deportes', ('Residencia: Suzhou', 'Lugar de nacimiento: Shanghai')]) método get() :['Altura: 170 cm', ' Peso: 65 kg'] my_dict después del método pop(): {'Xiao Li': 'Me encanta aprender, me encantan los deportes', 'Xiaohua': ('Residencia: Suzhou',' Lugar de nacimiento: Shanghai')}
Cuando usamos diccionarios, a menudo necesitamos recorrer el diccionario. Generalmente usamos un bucle for para recorrer todas las claves del diccionario.
Echemos un vistazo al acceso transversal en general:
>>>my_dict={1001:'Xiaoming',1002:'Xiaohua',1003:'Xiaozhang'}>>>foriinmy_dict:print(i,my_dict[i])#Clave de salida y el valor correspondiente a la clave 1001Xiao Ming 1002 Xiaohua 1003 Xiao Zhang
También usaremos el método items() para obtener pares de elementos al obtener el objeto.
>>>my_dict={1001:'Xiao Ming',1002:'Xiao Hua',1003:'Xiao Zhang'}>>>foriinmy_dict.items():print(i)(1001,'Xiao Ming')(1002 , 'Xiaohua')(1003,'Xiao Zhang')
Este método de acceso es un par de datos en el diccionario opuesto y el resultado de salida se genera en forma de tupla. Al mismo tiempo, la clave y el valor de cada recorrido se pueden obtener directamente mediante el recorrido del bucle.
>>>my_dict={1001:'Xiao Ming',1002:'Xiao Hua',1003:'Xiao Zhang'}>>>fori,jinmy_dict.items():print('clave correspondiente:',i,'correspondiente valor :',j) Clave correspondiente: 1001 Valor correspondiente: Xiao Ming Clave correspondiente: 1002 Valor correspondiente: Xiao Hua Clave correspondiente: 1003 Valor correspondiente: Xiao Zhang
Finalmente, practique el recorrido del diccionario mediante ejercicios.
He aprendido sobre la derivación de listas antes. La derivación de tuplas es similar a la derivación de listas sin mucha introducción, porque los diccionarios son relativamente especiales. Aquí explicaremos la derivación de diccionarios.
Veamos primero un uso simple.
>>>mi_dict={i:'dotcpp'foriinrange(1,5)}>>>mi_dict{1:'dotcpp',2:'dotcpp',3:'dotcpp',4:'dotcpp'}
Aquí echamos un vistazo a la estructura de la derivación del diccionario. La primera parte es equivalente a usar 'dotcpp' para asignar el objeto de valor de cada i. También podemos definir una lista primero y asignarle el valor en la lista.
>>>mi_lista=[10,20,30,40,50]>>>mi_dict={i:mi_lista[i]foriinrange(1,5)}>>>mi_dict{1:20,2:30,3: 40,4:50}
Mira la imagen a continuación:
Cuando usamos la derivación de diccionario, el principal problema es la coincidencia de claves y valores. Después de aprender la función más adelante, podemos usar la función zip() para combinar diccionarios de manera más conveniente. No la presentaremos demasiado aquí.
Se requiere que el usuario ingrese los activos totales, por ejemplo: 3000, luego se muestra la lista del carrito de compras y se calcula la cantidad total de los artículos en el carrito de compras. Si la cantidad total de artículos es mayor que los activos totales, Le indicará que el saldo de la cuenta es insuficiente. De lo contrario, la compra se realizó correctamente. La lista del carrito de compras es la siguiente: carritos=[{nombre: cama, precio: 1999, "num": 1}, {nombre: almohada, precio: 10, " num ": 2}, {nombre: edredón, precio: 20, "núm”:1}].
La solución está al final.
Los diccionarios son una estructura de datos de uso relativamente común al aprender Python. Sin embargo, debido a su singularidad, puede haber relativamente pocas palabras sobre diccionarios en las preguntas de la competencia, pero en el aprendizaje y las inspecciones de cursos de Python, podemos usar diccionarios para ayudarnos. encontrar los datos correspondientes con precisión y dominar listas y diccionarios de manera competente puede ayudarnos a aprender Python mejor.
carritos=[{nombre:cama,precio:1999,"num":1},{nombre:almohada,precio:10,"num":2},{nombre:edredón,precio:20,"num":1} ]. m=int(input())sum=0foriinrange(len(carts)):sum=carts[i]['price']*carts[i]['num']+sumifm>=sum:print('Compra exitosa ')else:print('Saldo de cuenta insuficiente')