Filtrar una lista de cadenas según su contenido
Dada una lista de cadenas, es posible que necesite extraer solo aquellas que contienen una subcadena específica. En Python, existen varias formas efectivas de realizar esta operación de filtrado.
Uso de listas por comprensión
Uno de los enfoques más simples y recomendados es utilizar las poderosas listas por comprensión de Python . Las listas por comprensión proporcionan una forma concisa y expresiva de crear una nueva lista basada en los elementos de una existente. Para su requisito específico de filtrar cadenas que contienen 'ab', puede emplear la siguiente comprensión:
lst = ['a', 'ab', 'abc', 'bac']
result = [k for k in lst if 'ab' in k]
Esta comprensión itera a través de cada cadena en la lista original ('a', 'ab', 'abc', 'bac') y verifica si contiene la subcadena 'ab'. Si es verdadero, agrega la cadena a la lista resultante. Esto le proporciona la lista filtrada deseada: ['ab', 'abc'].
Usando la función de filtro
Otro método para filtrar cadenas en Python es usar la función de filtro. Esta función toma una función de filtro y un iterable como argumentos y devuelve un iterador que produce los elementos del iterable que satisfacen la función de filtro. En su caso, puede utilizar el filtro de la siguiente manera:
lst = ['a', 'ab', 'abc', 'bac']
result = list(filter(lambda k: 'ab' in k, lst))
La función de filtro toma una función anónima (función lambda) como primer argumento, que verifica si 'ab' existe en la entrada cadena. El segundo argumento es la lista original. El resultado del filtro es un iterador, que luego se convierte en una lista usando list(). Nuevamente, esto produce la lista ['ab', 'abc'] deseada.
Si bien tanto las listas por comprensión como la función de filtro pueden lograr el filtrado deseado, las listas por comprensión generalmente se prefieren por su concisión y legibilidad, especialmente para tareas de filtrado simples como esta.
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