En Python, la comprensión de listas ofrece una forma concisa de crear listas basadas en iterables existentes. Sin embargo, surgió una pregunta con respecto a la comprensión de una lista que involucra una declaración if.
El objetivo era comparar dos iterables, a y b, e imprimir solo los elementos que aparecían en ambos. El código previsto tenía este aspecto:
print([y if y not in b for y in a])
Desafortunadamente, este código generó un error de sintaxis. La cuestión radica en el orden de la construcción if-else. En Python, la declaración condicional debe aparecer después del bucle for en la comprensión de listas a menos que se use como operador ternario.
Sintaxis correcta:
[y for y in a if y not in b]
Este código itera a través de cada elemento y en a. Si y no se encuentra en b, se agrega a la lista. La lista resultante contendrá los elementos que aparecen tanto en a como en b.
Sintaxis del operador ternario alternativo:
[y if y not in b else other_value for y in a]
Este código utiliza el operador ternario para especificar un valor alternativo (otro_valor) en caso de que y no se encuentre en b. Este enfoque es menos común y normalmente se usa cuando se necesita un valor predeterminado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3