300x250 AD TOP

Blogger news

AD (728x90)

Tecnologia do Blogger.

Colaboradores

Seguidores

Postagens populares

Tagged under:

Python - Manipulando listas


Criando uma lista de números em sequência:
1
2
3
4
# python 2:
lista = range(100)
# python 3:
lista = list(range(100))
Criando uma lista com list comprehensions:
1
lista = [x*2 for x in range(100)]
Percorrendo uma lista com for in:
1
2
for x in lista:
    # faça algo com x
Percorrendo uma lista, obtendo os valores e seus índices:
1
2
for indice, valor in enumerate(lista):
    print "lista[%d] = %d" % (indice, valor)
Percorrendo um pedaço de uma lista usando slicing:
1
2
for x in lista[40:60]:
    # faça algo com x
Percorrendo uma lista de trás pra frente definindo o passo do slicing como -1:
1
2
for x in lista[::-1]:
    # faça algo com x
Ou:
1
2
for x in reversed(lista):
    # faça algo com x
Percorrendo uma lista ordenada:
1
2
for x in sorted(lista):
    # faça algo com x
Acessando o último elemento de uma lista com o índice -1:
1
print lista[-1]
Copiando uma referência para uma lista:
1
2
3
>>> nova_ref = lista
>>> nova_ref is lista
True
Copiando de verdade uma lista:
1
2
3
>>> nova_lista = lista[:]
>>> nova_lista is lista
False
Ou, usando o módulo copy:
1
2
3
4
>>> import copy
>>> nova_lista = copy.copy(lista)
>>> nova_lista is lista
False
Ou caso lista contivesse listas aninhadas e quiséssemos fazer com que estas também fossem completamente copiadas, e não somente referenciadas, usaríamos a função deepcopy():
1
2
3
>>> nova_lista = copy.deepcopy(lista)
>>> nova_lista is lista
False
Embaralhando os elementos de uma lista (in-place):
1
2
>>> import random
>>> random.shuffle(lista)  # altera a própria lista
Obtendo uma amostra aleatória (de 10 elementos) de uma lista:
1
2
>>> print random.sample(lista, 10)
[729, 9025, 2401, 8100, 5776, 784, 1444, 484, 6241, 7396]
Obtendo um elemento aleatório de uma lista:
1
2
>>> random.choice(lista)
7744
Gerando uma lista com 10 números aleatórios, com valores entre 0 e 99:
1
>>> lista_aleatoria = random.sample(range(0, 100), 10)
Obtendo o maior elemento de uma lista:
1
2
3
>>> lista = range(0, 10)
>>> print max(lista)
9
O menor:
1
2
>>> print min(lista)
0
Pegando somente os elementos de índice par:
1
2
>>> print lista[::2]
[0, 2, 4, 6, 8]
Os de índice ímpar:
1
2
>>> print lista[1::2]
[1, 3, 5, 7, 9]
Somando todos os elementos de uma lista:
1
2
>>> print sum([1, 2, 3, 4])
10
Juntando duas listas, formando pares de elementos:
1
2
3
>>> lista = zip(range(0, 5), range(5, 10))
>>> print lista
[(0, 5), (1, 6), (2, 7), (3, 8), (4, 9)]
Separando os elementos de uma lista de forma intercalada:
1
2
3
4
>>> lista = range(0, 10)
>>> intercaladas = lista[::2], lista[1::2]
>>> print intercaladas
([0, 2, 4, 6, 8], [1, 3, 5, 7, 9])
Transformando uma lista de strings em uma string CSV:
1
2
3
4
>>> lista = ["ola", "mundo", "aqui", "estamos"]
>>> csv_values = ','.join(lista)
>>> print csv_values
ola,mundo,aqui,estamos
Aplicando uma função (neste caso, anônima) a todos elementos de uma lista:
1
2
3
>>> lista = range(1, 11)
>>> print map(lambda x: x*-1, lista)
[-1, -2, -3, -4, -5, -6, -7, -8, -9, -10]
Filtrando os elementos de uma lista de acordo com um critério:
1
2
3
4
5
>>> def criterio(x): return x >= 0
>>> print range(-5, 5)
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> print filter(criterio, range(-5, 5))
[0, 1, 2, 3, 4]
Retirando os elementos cujo valor é zero (ou melhor, cujo valor é avaliado como False):
1
2
>>> print filter(None, range(-2, 2))
[-2, -1, 1]

0 comentários:

Postar um comentário