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 listaTrue |
Copiando de verdade uma lista:
1
2
3
| >>> nova_lista = lista[:]>>> nova_lista is listaFalse |
Ou, usando o módulo
copy:
1
2
3
4
| >>> import copy>>> nova_lista = copy.copy(lista)>>> nova_lista is listaFalse |
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 listaFalse |
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_valuesola,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