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' .