Categorias
Introdução à Programação para Bioinformática com Biopython

Listas

Capítulo 5

Este conteúdo faz parte do livro “Introdução à Programação para Bioinformática com Biopython“. Você pode adquirir a versão impressa desse livro aqui ou a versão para Kindle aqui. Para nos citar, consulte este link.

Listas são coleções de dados em Python que agrupam um conjunto de elementos. Listas podem conter strings, valores numéricos e até mesmo outras listas. Veja abaixo o exemplo de uma lista com quatro elementos:

nucleotideos = ["A","T","C","G"]
print(nucleotideos) 
 
# Sera impresso: ['A', 'T', 'C', 'G']

A impressão de elementos específicos de uma lista é feita da mesma forma que a impressão de um caractere em uma string. Veja:

nucleotideos = ["A","T","C","G"]
print(nucleotideos) 
 
# Sera impresso: ['A', 'T', 'C', 'G']

Principais métodos para listas

Método

Uso

lista.append(x)

Insere o elemento x no final da lista.

lista.insert(i,x)

Insere o elemento x na posição i.

lista.extend(L)

Insere todos os elementos da lista L no final da lista.

print lista

Imprime todos os elementos da lista na seguinte formatação:

[ ‘x1’, ‘x2’, …, ‘xn’].

print lista.index(x)

Imprime a posição da primeira ocorrência do elemento x na lista.

lista.remove(x)

Remove o primeiro elemento cujo valor seja igual a x.

lista.pop(i)

Remove o elemento da posição “i” da lista e o retorna. Pode ser usado como lista.pop( ), nesse caso irá remover e retornar o último elemento.

del lista[i]

Apaga o elemento na posição “i” da lista. Pode-se passar uma faixa de elementos a serem deletados. O comando del lista[:] apagará toda a lista.

“x” in lista

Retorna True caso x pertença à lista e False caso contrário.

len(lista)

Retorna o número de elementos de lista.

Veja agora alguns exemplos dos métodos citados acima. Para isso considere a lista nucleotideos = [“A”,”T”,”C”,”G”].

nucleotideos = ["A","T","C","G"]
 
nucleotideos.extend(["G", "C"])
print(nucleotideos)
# Sera impresso ['A', 'T', 'C', 'G', 'G', 'C']
 
indice = nucleotideos.index("C")
print(indice)
# Sera impresso 2
 
nucleotideos.remove("G")
print(nucleotideos)
# Sera impreso ['A', 'T', 'C', 'G', 'C']
 
x = nucleotideos.pop(4)
print(x)
# Sera impresso "C"
 
print(nucleotideos)
# Sera impresso ['A', 'T', 'C', 'G']
 
del nucleotideos[2:4]
print(nucleotideos)
# Sera impresso ['A', 'T']
 
if "A" in nucleotideos:
	print("Exite um A em nucleotideos")
# Sera impresso True
 
print(len(nucleotideos))
# Sera impresso 2

Percorrendo listas usando o laço for

Como visto anteriormente, em certos momentos é preciso percorrer listas analisando cada elemento individualmente. Para isso associamos o comando for com o operador in.

for x in ["A","T","C","G"]:
	print(x)
 
# Sera impresso
# A
# T
# C
# G

Em certas situações pode ser necessário saber a posição de um elemento numa determinada lista. Para isso vamos associar o for com um comando condicional if da seguinte maneira:

nucleotideos = ["A","T","C","G","A","T","C","A","C"]
 	
for i in range(len(nucleotideos)):
	if nucleotideos[i] == "A":
		print("Adenina encontrada na posicao: %d" % i) 

Vamos entender melhor o que foi realizado acima:

  • len(nucleotideos): retorna o números de elementos da lista nucleotídeos;
  • range(len(nucleotideos)): retorna uma lista contendo inteiros entre 0 e o números de elementos da lista menos um. Como por exemplo, se existirem cinco elemento nas lista, então range(len(nucleotideos)) retorna [ 0, 1 , 2, 3, 4];
  • for i in range(len(nucleotideos): a lista de inteiros é percorrida por um laço for. A variável i irá assumir cada um dos valores presente na lista de inteiros;
  • if “A” == nucleotideos[i]: é feita uma comparação se o elemento na posição i da lista de nucleotídeos é igual a “A”. Caso seja, uma mensagem é impressa na tela; caso não seja, a variável i assume o próximo valor da lista.

Podemos ainda utilizar o laço for para imprimir listas, tuplas e dicionários presentes dentro de outras listas. Veja este exemplo:

aminoacidos = [('Alanina', 'ALA', 'A'), \
('Cisteina', 'CYS', 'C')]
 
# Imprimindo listas complexas
 
for aa, aa_tres, aa_um in aminoacidos:
	print("Aminoacido: ",aa)
	print("Aminoacido (codigo 3 letras): ",aa_tres)
	print("Aminoacido (codigo 1 letra): ",aa_um)

Nesse exemplo, a variável aa recebe a primeira posição de cada tupla presente na variável aminoacidos, aa_tres recebe a segunda e aa_um recebe a terceira posição. Enquanto elementos em listas são declaradas entre colchetes “[ ]”, elementos em tuplas são declarados entre parênteses “( )” e elementos em dicionários entre chaves “{ }”. No próximo tópico, vamos entender melhor o que são tuplas e dicionários.

Tuplas e dicionários

Tuplas são similares às listas, porém são imutáveis, ou seja, não se pode acrescentar, apagar ou fazer atribuições aos itens. É possível converter tuplas em listas e vice-versa:

# Converte uma lista em uma tupla
tupla = tuple(lista)
 
# Converte uma tupla em uma lista
lista = list(tupla)

Dicionários são listas (mutáveis) de associações compostas por uma chave, que deve ser única, e um valor correspondente.

aminoacidos = {'ALA': 'Alanina', 'CYS': 'Cisteina'}
print(aminoacidos['ALA'])
 
# Alanina

Você pode adicionar e apagar elementos a dicionários de maneira simples:

aminoacidos = {'ALA': 'Alanina', 'CYS': 'Cisteina'}
 
aminoacidos['HIS'] = 'Histidina'
# adiciona Histidina
 
del aminoacidos['ALA']
# apaga Alanina

Ainda, é possível obter itens de um dicionário da seguinte forma:

aminoacidos = {'alanina': ['ALA', 'A'], \
'cisteina': ['CYS','C']}
 
# Mais amino
aminoacidos['histidina'] = ['HIS', 'H']
 
for um, tres in aminoacidos.items():
	print(um, '=>', tres)
 
'''
cisteina => ['CYS', 'C']
histidina => ['HIS', 'H']
alanina => ['ALA', 'A']
'''

Quer aprender mais? Conheça nossos cursos profissionalizantes à partir de R$19,99:

Livro Introdução à Programação para Bioinformática com Biopython

Capítulo 1
Introdução ao Python

Capítulo 2
Comandos condicionais

Capítulo 3
Laços de repetição

Capítulo 4
Trabalhando com strings

Capítulo 5
Listas

Capítulo 6
Manipulando arquivos

Capítulo 7
Funções

Capítulo 8
Princípios da orientação a objetos

Capítulo 9
Introdução ao Biopython

Capítulo 10
Sequências

Capítulo 11
BLAST

Capítulo 12
PDB

Capítulo 13
Visualização de dados em Python

Capítulo 14
Outras coisas interessantes que se pode fazer com Biopython

Capítulo 15
Hierarquia do Biopython

Por favor, nos cite:

MARIANO, D. C. B.; BARROSO, J. R. P. M. ; CORREIA, T. S. ; de MELO-MINARDI, R. C. . Introdução à Programação para Bioinformática com Biopython. 3. ed. North Charleston, SC (EUA): CreateSpace Independent Publishing Platform, 2015. v. 1. 230p .

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.