logo

Restar listas de cadenas en Python

En Python, una cadena es una secuencia de caracteres y una lista es una colección de elementos que pueden ser de cualquier tipo de datos, incluidas cadenas. Sustracción de una lista de cadenas implica eliminar elementos que son comunes entre dos liza o instrumentos de cuerda .

cómo eliminar el primer carácter en excel

Para restar una lista de cadenas de otra, puede utilizar el 'colocar' tipo de datos en Python. El tipo de datos establecido es una colección desordenada de elementos únicos. El operador de resta '-' se puede utilizar entre dos conjuntos para encontrar los elementos del primer conjunto que no están presentes en el segundo conjunto.

Ejemplo:

A continuación se muestra un ejemplo de cómo restar una lista de cadenas de otra utilizando el tipo de datos establecido:

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = list(set(list1) - set(list2)) print(result) 

Producción:

 ['apple', 'cherry'] 

En el ejemplo anterior, definimos dos listas, 'hoja1' y 'lista2' . Después de eso, convertimos cada lista en un conjunto usando el 'colocar' función en Python. Después de eso, usamos el '-' operador para restar los elementos de 'lista2' de 'hoja1' . Finalmente, convertimos el conjunto resultante nuevamente en una lista usando el 'lista' función en Python.

Esto da como resultado una nueva lista. 'resultado' que contiene los elementos de 'hoja1' que no están presentes en 'lista2' , que en este caso son 'manzana' y 'cereza' .

Ejemplo:

Aquí hay otro ejemplo que muestra cómo restar una lista de cadenas de una sola cadena:

 string1 = 'Hello world!' list1 = ['o', 'l', 'd'] result = ''.join([char for char in string1 if char not in list1]) print(result) 

Producción:

 'He wr!' 

En el ejemplo anterior, definimos una cadena 'cadena1' y una lista de cadenas 'hoja1' . Después de eso, usamos una lista de comprensión para iterar sobre cada carácter en 'cadena1' y comprobar si está presente en 'hoja1' . Si el personaje no está en 'hoja1' , lo agregamos a una nueva lista usando el 'unirse' método. Finalmente, volvemos a convertir la lista resultante en una cadena.

Esto da como resultado una nueva cadena. 'resultado' que contiene sólo los caracteres de 'cadena1' que no están presentes en 'hoja1' , que en este caso son 'H', 'e', ​​'', 'w' , y 'r' .

Vale la pena señalar que es posible que no se conserve el orden de los elementos en la lista o cadena resultante. Si necesita conservar el orden, puede utilizar una lista por comprensión con un 'si' declaración para filtrar los elementos que están presentes en la segunda lista.

Ejemplo:

 list1 = ['apple', 'banana', 'cherry', 'orange'] list2 = ['banana', 'orange', 'kiwi'] result = [item for item in list1 if item not in list2] print(result) 

Producción:

 ['apple', 'cherry'] 

En el ejemplo anterior, definimos dos listas, 'hoja1' y 'lista2' . Después de eso, usamos una lista por comprensión para iterar sobre cada elemento en 'hoja1' y comprobar si está presente en 'lista2' . Si el elemento no está en 'lista2' , lo agregamos a una nueva lista. Finalmente, imprimimos la lista resultante, que contiene los elementos de 'hoja1' que no están presentes en 'lista2' .

Alguna otra información:

Conjunto vs tipos de datos de lista:

Como se mencionó anteriormente, al restar listas de cadenas, se recomienda convertir las listas en conjuntos. Esto se debe a que los conjuntos están optimizados para comprobar la existencia de elementos y eliminar duplicados. Sin embargo, si es importante preservar el orden de los elementos, entonces puede ser mejor utilizar una lista por comprensión.

Consideraciones de rendimiento:

Convertir listas en conjuntos puede ser una operación computacionalmente costosa, especialmente para listas grandes. Si le preocupa el rendimiento, es posible que desee considerar el uso de enfoques alternativos, como la comprensión de listas o una expresión generadora.

Mutabilidad:

Es importante tener en cuenta que los conjuntos son mudable , mientras que las cuerdas y tuplas (que también se pueden utilizar como tipos de datos iterables) no lo son. Significa que cuando restas un conjunto de otro conjunto, el conjunto resultante es mudable , y podrás modificar su contenido. Por otro lado, al restar una lista o tupla de otra lista o tupla, la lista o tupla resultante no es mutable y no se puede modificar su contenido.

Listas anidadas:

Si está trabajando con listas anidadas, es posible que necesite utilizar un bucle anidado o recursividad para restar una lista de otra. He aquí un ejemplo:

 list1 = [['apple', 'banana'], ['cherry', 'orange']] list2 = [['banana', 'kiwi'], ['cherry', 'pear']] result = [] for sublist1, sublist2 in zip(list1, list2): subresult = [item for item in sublist1 if item not in sublist2] result.append(subresult) print(result) 

Producción:

 [['apple'], ['orange']] 

En el ejemplo anterior, definimos dos listas anidadas, 'hoja1' y 'lista2' . Después de eso, usamos un bucle for para iterar sobre cada par de sublistas en 'hoja1' y 'lista2' . Usamos una lista por comprensión para restar los elementos de cada sublista en 'lista2' de la sublista correspondiente en ' hoja1' . Finalmente, agregamos las sublistas resultantes a una nueva lista. 'resultado' .