Diccionario de Python en profundidad

Atravesar el diccionario

El diccionario de Python puede contener varios pares de clave-valor, o puede contener millones de pares de clave-valor. En vista del diccionario puede contener una gran cantidad de datos, Python admite el recorrido del diccionario. Los diccionarios se pueden utilizar para almacenar información de varias maneras, por lo que hay varias formas de recorrer el diccionario: se pueden recorrer todos los pares clave-valor, claves o valores del diccionario.
1. Recorrer todos los pares clave-valor
Veamos primero un ejemplo simple de diccionario. El diccionario se utiliza para almacenar información sobre los usuarios del sitio web. El siguiente diccionario almacena el nombre de usuario, nombre y apellido de un usuario:

user_0 = {
	'username' : 'efermi',
	'first' : 'enrico', 
	'last' : 'fermi',
	}

Después del estudio anterior, sabemos cómo obtener la información en el diccionario, pero ¿qué sucede si queremos aprender toda la información en el diccionario del usuario? ¿Piensa si el ciclo for que aprendió anteriormente puede satisfacer esta necesidad? Entonces verifíquelo:

user_0 = {
	'username' : 'efermi',
	'first' : 'enrico', 
	'last' : 'fermi',
	}

for key,value in user_0.items():
	print("\nkey: " + key)
	print("value: " + value)

Mira el resultado:

book@www.100ask.org:~/python/L8$ python user.py

key: username
value: efermi

key: last
value: fermi

key: first
value: enrico

En la declaración for, se declaran dos variables para almacenar la clave y el valor en el par clave-valor. Para estas dos variables, se puede usar cualquier nombre. La segunda mitad del ciclo for incluye el nombre del diccionario y los elementos del método (), que Devuelva una lista de valores clave y luego, para el bucle, almacenar cada par clave-valor en las dos variables especificadas, y luego usar la instrucción print para imprimir los valores en las variables.
Nota: Incluso al recorrer el diccionario, el orden de retorno de los pares clave-valor también es diferente del orden de almacenamiento. Python no se preocupa por el orden de almacenamiento de los pares clave-valor, sino que solo rastrea la relación entre los pares clave-valor.

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

for name,language in favorite_languages.items():
	print(name.title() + " 's favorite language is " + 
	language.title() + " . ")

book@www.100ask.org:~/python/L8$ python favorite_languages.py
Sarah 's favorite language is C .
Edward 's favorite language is Ruby .
Jen 's favorite language is Python .
Phil 's favorite language is Python .

2. Iterar sobre todas las claves
del diccionario Las teclas de método () son útiles cuando no necesita usar los valores del diccionario. Vamos a usarlo a continuación:

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

for name in favorite_languages.keys():
	print(name.title())

Mira el resultado:

book@www.100ask.org:~/python/L8$ python favorite_languages.py
Sarah
Edward
Jen
Phil

En el ejemplo anterior, solo quiero ver el nombre del encuestado, por lo que solo se imprime el nombre del encuestado.
Al recorrer el diccionario, todas las claves se recorrerán de manera predeterminada, por lo tanto, si reemplaza por nombre en favorite_languages.keys (): en el código anterior con for name en favorito —— idiomas: la salida permanecerá sin cambios.
Si las teclas de método () se usan explícitamente para que el código sea más fácil de entender, puede elegir hacerlo, pero puede omitirlo si lo desea.
En este ciclo, puede usar la clave actual para acceder al valor asociado. Imprimamos dos mensajes a continuación, indicando el idioma preferido por los dos amigos.

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

friends = ['phil', 'sarah']
for name in favorite_languages.keys():
	print(name.title())

	if name in friends:
		print(" Hi " + name.title() + 
		" , I see your favorite language is " + 
		favorite_languages[name].title() + " ! ")

Entonces:

book@www.100ask.org:~/python/L8$ python favorite_languages.py
Sarah
 Hi Sarah , I see your favorite language is C !
Edward
Jen
Phil
 Hi Phil , I see your favorite language is Python !

También podemos usar extensiones para usar las teclas () para determinar si alguien está bajo investigación, como:

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

if 'erin' not in favorite_languages.keys():
	print("Erin, please take our poll!")

Entonces:

book@www.100ask.org:~/python/L8$ python favorite_languages.py
Erin, please take our poll!

Las teclas de método () no solo se utilizan para el recorrido; de hecho, devuelve una lista que contiene todas las teclas del diccionario, por lo que en el ejemplo anterior, erin no se incluye en la lista devuelta por las teclas de método (), por lo que se ejecuta La declaración sangrada después del if.
3. Recorre todas las claves del
diccionario en orden. El diccionario siempre registra explícitamente la asociación entre la clave y el valor, pero cuando obtienes los elementos del diccionario, el orden de adquisición es impredecible. Esto no es un problema, porque generalmente queremos obtener El valor correcto asociado con la clave.
Para devolver los elementos en un orden específico, una forma es ordenar las claves devueltas en el bucle for. Por lo tanto, puede usar la función sorted () para obtener una copia de la lista de claves en un orden específico, como por ejemplo:

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

for name in sorted(favorite_languages.keys()):
	print(name.title() + " , thank you for taking the poll.")
book@www.100ask.org:~/python/L8$ python favorite_languages.py
Edward , thank you for taking the poll.
Jen , thank you for taking the poll.
Phil , thank you for taking the poll.
Sarah , thank you for taking the poll.

La declaración for en el ejemplo es la misma que la otra declaración for, la diferencia es que la función sorted () se invoca en el resultado del método favorite_languages.keys (), lo que hace que python enumere todas las claves en el diccionario y verifique esto antes de recorrer. Ordenar la lista. El resultado muestra que los nombres de todos los encuestados se muestran en orden.
4. Iterar sobre todos los valores
en el diccionario Pero si solo está interesado en los valores contenidos en el diccionario, puede usar los valores del método (), que devuelve una lista de valores sin ninguna clave. Por ejemplo, si queremos obtener una lista que contenga solo los diversos idiomas seleccionados por el encuestado, pero no el nombre del encuestado, puede ser el siguiente:

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

print("The following languages have been mentioned: ")
for language in favorite_languages.values():
	print(language.title())

Entonces:

book@www.100ask.org:~/python/L8$ python favorite_languages.py
The following languages have been mentioned:
C
Ruby
Python
Python

Solo queremos saber qué tipo de idiomas le gustan más, y debe haber el mismo idioma que le guste a muchas personas, por lo que habrá duplicados. Verá que nuestros resultados de salida son duplicados. ¿Hay alguna manera de resolver esto? ¿Qué tipo de repetición? Continúa mirando hacia abajo:

favorite_languages = {
	'jen' : 'python',
	'sarah': 'C',
	'edward':'ruby',
	'phil':'python',
	}

print("The following languages have been mentioned: ")
for language in set(favorite_languages.values()):
	print(language.title())
book@www.100ask.org:~/python/L8$ python favorite_languages.py
The following languages have been mentioned:
Python
C
Ruby

Para resolver el problema de los resultados repetidos cuando hay una gran cantidad de datos, podemos usar el conjunto en python. El conjunto es similar a una lista, pero cada elemento debe ser único. En el ejemplo anterior, usamos el método favorite_languages.values ​​() El conjunto extrae una lista no duplicada.
Con la continua investigación y aprendizaje en profundidad de Python, descubriremos que las funciones integradas de Python pueden ayudarnos a procesar los datos de la manera deseada. Como hay muchas plataformas de desarrollo en el trabajo, se proporcionarán muchos paquetes de soporte de software y varias API.

Publicado 53 artículos originales · elogiado 16 · visitas 2213

Supongo que te gusta

Origin blog.csdn.net/m0_37757533/article/details/105339314
Recomendado
Clasificación