logo

Subtrair listas de strings em Python

Em Python, uma string é uma sequência de caracteres e uma lista é uma coleção de elementos que podem ser de qualquer tipo de dados, incluindo strings. Subtração de uma lista de strings envolve a remoção de elementos que são comuns entre dois listas ou cordas .

Para subtrair uma lista de strings de outra, você pode usar o 'definir' tipo de dados em Python. O tipo de dados definido é uma coleção não ordenada de elementos exclusivos. O operador de subtração '-' pode ser usado entre dois conjuntos para encontrar os elementos do primeiro conjunto que não estão presentes no segundo conjunto.

Exemplo:

Aqui está um exemplo de subtração de uma lista de strings de outra usando o tipo de dados set:

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

Saída:

 ['apple', 'cherry'] 

No exemplo acima, definimos duas listas, 'folha1' e 'lista2' . Depois disso, convertemos cada lista em um conjunto usando o 'definir' função em Python. Depois disso, usamos o '-' operador para subtrair os elementos de 'lista2' de 'folha1' . Finalmente, convertemos o conjunto resultante novamente em uma lista usando o 'lista' função em Python.

Isso resulta em uma nova lista 'resultado' que contém os elementos de 'folha1' que não estão presentes em 'lista2' , que neste caso são 'maçã' e 'cereja' .

Exemplo:

Aqui está outro exemplo que mostra como subtrair uma lista de strings de uma única string:

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

Saída:

 'He wr!' 

No exemplo acima, definimos uma string 'string1' e uma lista de strings 'folha1' . Depois disso, usamos uma compreensão de lista para iterar cada caractere em 'string1' e verifique se está presente em 'folha1' . Se o personagem não estiver em 'folha1' , nós o adicionamos a uma nova lista usando o 'juntar' método. Finalmente, convertemos a lista resultante novamente em uma string.

Isso resulta em uma nova string 'resultado' que contém apenas os caracteres de 'string1' que não estão presentes em 'folha1' , que neste caso são 'H', 'e', ​​​​'', 'w' , e 'r' .

Vale ressaltar que a ordem dos elementos na lista ou string resultante pode não ser preservada. Se precisar preservar a ordem, você pode usar uma compreensão de lista com um 'se' instrução para filtrar os elementos que estão presentes na segunda lista.

algoritmo k-nn

Exemplo:

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

Saída:

 ['apple', 'cherry'] 

No exemplo acima, definimos duas listas, 'folha1' e 'lista2' . Depois disso, usamos uma compreensão de lista para iterar sobre cada elemento em 'folha1' e verifique se está presente em 'lista2' . Se o elemento não estiver em 'lista2' , nós o adicionamos a uma nova lista. Finalmente, imprimimos a lista resultante, que contém os elementos de 'folha1' que não estão presentes em 'lista2' .

Algumas outras informações:

Definir vs listar tipos de dados:

Conforme mencionado anteriormente, ao subtrair listas de strings, é recomendado converter as listas em conjuntos. Isso ocorre porque os conjuntos são otimizados para verificar a existência de elementos e remover duplicatas. No entanto, se preservar a ordem dos elementos for importante, talvez seja melhor usar uma compreensão de lista.

Considerações de desempenho:

Converter listas em conjuntos pode ser uma operação computacionalmente cara, especialmente para listas grandes. Se o desempenho for uma preocupação, você pode considerar o uso de abordagens alternativas, como compreensão de lista ou uma expressão geradora.

Mutabilidade:

É importante notar que os conjuntos são mutável , enquanto strings e tuplas (que também podem ser usados ​​como tipos de dados iteráveis) não são. Isso significa que quando você subtrai um conjunto de outro conjunto, o conjunto resultante é mutável e você pode modificar seu conteúdo. Por outro lado, ao subtrair uma lista ou tupla de outra lista ou tupla, a lista ou tupla resultante não é mutável e você não pode modificar seu conteúdo.

Listas aninhadas:

Se estiver trabalhando com listas aninhadas, talvez seja necessário usar um loop aninhado ou recursão para subtrair uma lista de outra. Aqui está um exemplo:

 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) 

Saída:

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

No exemplo acima, definimos duas listas aninhadas, 'folha1' e 'lista2' . Depois disso, usamos um loop for para iterar cada par de sublistas em 'folha1' e 'lista2' . Usamos uma compreensão de lista para subtrair os elementos de cada sublista em 'lista2' da sublista correspondente em ' folha1' . Finalmente, anexamos as sublistas resultantes a uma nova lista 'resultado' .