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