Interseção
Antes de iniciar este tutorial, o conceito de interseção será explicado. Abaixo, dois são dados como exemplo:
Lista 1 = [4, 7, 23, 9, 6, 11]Lista 2 = [6, 5, 1, 20, 9, 7, 4, 3]
Depois de aplicar a interseção, se o resultado for armazenado em outra lista, talvez chamada de Lista3, então ela conterá os seguintes dados.
Lista 3 = [4, 6, 7, 9]A representação gráfica de List3 é mostrada abaixo:
Exemplo 1: Listas de intersecção por meio do método set ()
O exemplo a seguir mostra como você pode cruzar duas listas usando o definir() método e o E operador. Duas listas, chamadas list1 e list2, são declaradas aqui. Ambas as listas contêm valores numéricos. A terceira lista é gerada convertendo a lista 1 e a lista 2 no conjunto por meio do conjunto() método e aplicação de interseção usando o E operador. A seguir, os valores das três listas são impressos.
#!/ usr / bin / env python3# Define list1
lista1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Define list2
lista2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Crie lista3 cruzando lista1 e lista2
lista3 = lista (conjunto (lista1) e conjunto (lista2))
# Print list1
print ("Os valores da lista1: \ n", lista1)
# Imprimir lista2
print ("Os valores de lista2: \ n", lista2)
# Imprimir lista3
print ("Os valores de lista3 após a intersecção de lista1 e lista2: \ n", lista3)
Resultado
A seguinte saída aparecerá após a execução do script. Três valores são comuns a ambas as listas. Esses valores são 8, 9 e 20 e são mostrados no conteúdo da terceira lista.
Exemplo 2: Listas de intersecção por meio do método intersection ()
Não há um método direto integrado para o objeto de lista descobrir os valores de interseção entre duas listas. No entanto, o conjunto possui um método embutido, denominado interseção(), para descobrir os valores comuns entre os conjuntos. Uma função personalizada, chamada intersectionLists (), é definido no seguinte script para descobrir os valores comuns entre as duas listas. Uma limitação deste conjunto é que ele pode conter apenas dados numéricos. Uma variável de lista pode conter vários tipos de string de dados, incluindo numérica, booleana, etc. No roteiro, lista1 e lista2 contém todos os dados da string, incluindo e texto. O script imprimirá todas as strings comuns e valores numéricos entre lista1 e lista2.
#!/ usr / bin / env python3# Defina a função para retornar a interseção de duas listas
def intersectLists (lista1, lista2):
conjunto de retorno (lista1).intersecção (lista2)
# Define list1
list1 = ['Olá', '7', '8', '10', '2']
# Define list2
list2 = ['8', '34', 'Olá', '2', '21', '1', 10]
"Chame a função personalizada para armazenar
o resultado da interseção de lista1 e lista2
na lista 3 "
lista3 = intersectLists (lista1, lista2)
# Print list1
print ("Os valores de lista1: \ n", lista1)
# Imprimir lista2
print ("Os valores de lista2: \ n", lista2)
# Imprimir lista3
print ("Os valores de lista3 após a intersecção de lista1 e lista2: \ n", lista3)
Resultado
A seguinte saída aparecerá após a execução do script. Aqui, os valores comuns entre as duas listas são '2', '8' e 'Hello.'
Exemplo 3: Listas de intersecção por meio do método de loop
Os dois exemplos anteriores mostram a interseção da lista usando funções integradas. O exemplo a seguir mostra a interseção da lista sem nenhuma função incorporada. Isso pode ser feito usando o loop. Duas listas de dados de texto são declaradas no script. O para loop é usado aqui para descobrir os valores de texto comuns entre lista1 e lista2, e que são armazenados na variável, lista3. Em seguida, os valores dessas três variáveis de lista são impressos.
#!/ usr / bin / env python3# Define list1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Define list2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Encontre a interseção usando o loop for e armazene o resultado em list3
lista3 = [valor para o valor na lista1 se o valor na lista2]
# Print list1
print ("Os valores de lista1: \ n", lista1)
# Imprimir lista2
print ("Os valores de lista2: \ n", lista2)
# Imprimir lista3
print ("Os valores de lista3 após a intersecção de lista1 e lista2: \ n", lista3)
Resultado
A seguinte saída aparecerá após a execução do script. Aqui, os valores de texto comuns das duas listas são 'Abir' e 'Meena.'
Exemplo 4: interseção de listas simples e aninhadas por meio do método filter ()
O exemplo a seguir mostra a interseção entre uma lista simples e uma lista aninhada. O filtro() método e lambda função são usados no script para conduzir a interseção entre lista1 e lista2. Quando uma lista contém uma ou mais listas como itens de lista, a lista é chamada de lista aninhada. Aqui, lista1 é uma lista simples, e lista2 é uma lista aninhada, enquanto lista3 contém os valores de interseção de lista1 e lista2.
#!/ usr / bin / env python3# Defina uma lista simples
lista1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Defina uma lista aninhada
lista2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Crie a lista3 cruzando a lista1 e a lista2 usando o filtro ()
lista3 = [lista (filtro (lambda n: n na lista1, lista)) para barra na lista2]
# Print list1
print ("Os valores da lista1: \ n", lista1)
# Imprimir lista2
print ("Os valores de lista2: \ n", lista2)
# Imprimir lista3
print ("Os valores de lista3 após a intersecção de lista1 e lista2: \ n", lista3)
Resultado
A seguinte saída aparecerá após a execução do script. A variável list2 contém três outras listas como itens de lista. Então, o resultado mostra a interseção entre essas três sublistas da lista2 com a lista1.
Conclusão
A interseção de listas é uma maneira útil de encontrar os valores comuns entre listas que contêm um grande número de itens de lista. Métodos para realizar a interseção de lista com e sem funções integradas são mostrados neste tutorial. Depois de ler este artigo, o conceito de interseção de lista deve estar claro e você deve ser capaz de aplicar a interseção de lista em seu script seguindo qualquer maneira mostrada neste tutorial.