Coletânea Python do ZERO às Redes Neurais Artificiais
Itertools
combinations( )
A seguir veremos alguns possíveis tratamentos de dados em formato de listas. Novamente, a justificativa deste capítulo se dá por trazer aplicações bastante rotineiras de certas funções sobre nossos dados.
Como já se presume pelo título deste tópico, por meio de algumas
ferramentas da biblioteca itertools podemos realizar, por exemplo, a combinação de dados a partir de listas.
Esta função em si realiza um tipo de combinação bem específica, onde
se faz necessário ler todos elementos de uma lista e ver as possíveis combinações entre tais elementos, sem que hajam combinações repetidas.
Indo para o exemplo, como de costume, todo processo se inicia com as
importações das bibliotecas, módulos e pacotes não nativos do Python.
Sendo assim, por meio de import poderíamos importar toda a biblioteca itertools, porém, como já dito em outros capítulos, uma boa prática de programação é realizarmos a importação apenas do que é necessário, por uma questão de performance.
Então, da biblioteca itertools importamos combinations, função dedicada
ao nosso propósito atual.
Em seguida é criada uma variável de nome lista10 que atribuído para si
tem uma simples lista com 6 elementos. A partir deste momento podemos realizar qualquer tipo de interação com tais dados.
Uma das formas mais básicas de realizar a leitura dos elementos de uma
lista é por meio de um laço de repetição que percorre elemento por elemento da mesma.
Aqui, incorporamos em nosso laço for a função combinations( ), que por sua vez deve ser parametrizado com o nome da variável de onde serão lidos os dados, seguido do número de possíveis combinações para cada elemento.
Nesse caso nos é retornado as possíveis combinações dos elementos,
mas repare que sem haver repetições, independentemente da ordem dos elementos.
Em outras palavras, para o primeiro elemento ‘Ana’ foi possível realizar
combinações com todos os demais, já para ‘Bianca’ as combinações foram feitas com todos elementos exceto ‘Ana’, onde já existia tal combinação, e assim por diante.
Apenas salientando um ponto importante, todos os elementos onde
houverem mais de uma combinação com os mesmos serão retornados ainda como lista, o último par de combinações, nesse exemplo ‘Franciele’ e ‘Maria’ serão retornados em formato de tupla.