Neste tutorial, você vai trabalhar com listas e aprender uma forma eficiente de dividir listas de tamanhos arbitrários em blocos de um tamanho definido.
Listas são estruturas de dados nativas do Python que armazenam itens heterogêneos e permitem acesso eficiente a esses itens. A tarefa de dividir listas em blocos de tamanho N é muito comum quando há um limite de itens que seu programa pode processar em uma única solicitação.
Listas
Listas são estruturas de dados que podem conter valores ou itens de tipos variados. Exemplos de itens são inteiros, floats, strings etc. Listas são mutáveis, ou seja, você pode alterar o conteúdo de uma lista sem mudar sua identidade. Elas são escritas com colchetes [], e os itens são separados por vírgula (,). Vamos criar uma lista de números para praticar...
# Criando uma lista com 95 números
list_numbers =list(range(1,96))print(list_numbers)Tecnologia
A função range() gera uma sequência de números. Ela segue o formato: range([start], stop[, step]), em que "start" e "step" são parâmetros opcionais. start é o número inicial da sequência; stop é o limite superior, ou seja, gera números até ele, mas sem incluí-lo; step é a diferença entre cada número da sequência. Essa função é indexada a partir de 0, o que significa que, quando o início não é especificado, os índices da lista começam em 0, não em 1.
Agora, digamos que você precise quebrar a lista em listas menores, cada uma com 5 elementos.
Uma forma de fazer isso é definindo um gerador. Um gerador é uma maneira elegante de definir um iterador. E o que é um iterador? Em poucas palavras, é um objeto que sabe como calcular e retornar o próximo item do objeto que está sendo percorrido. Você pode ler mais sobre iteradores e geradores no tutorial de iteradores em Python da DataCamp.
Definimos uma função que contém o gerador que faz o trabalho para nós.
# Retorna, em sequência, blocos de tamanho 'n' da lista 'list_name'defcreate_chunks(list_name, n):for i inrange(0,len(list_name), n):yield list_name[i:i + n]# Chame a função 'create_chunks' para dividir a lista em sublistas de 10 itens cadaprint(list(create_chunks(list_numbers,10)))Tecnologia
À medida que o problema fica mais complexo, as expressões de list comprehension podem se tornar difíceis de entender e depurar. Por isso, escrever uma função limpa, como com o gerador, pode ser mais útil e fácil de manter.
Neste tutorial, você viu duas maneiras de resolver um problema bem frequente ao trabalhar com listas. Confira o curso Data Types for Data Science da DataCamp.
Aprenda a dividir listas Python com técnicas como slicing, compreensão de listas e itertools. Descubra quando usar cada método para um tratamento ideal dos dados.
Introdução às estruturas de dados do Python: saiba mais sobre tipos de dados e estruturas de dados primitivas e não primitivas, como strings, listas, pilhas etc.
Um tutorial introdutório completo sobre loops em Python. Aprenda e pratique loops while e for, loops aninhados, as palavras-chave break e continue, a função range e muito mais!
Listas são estruturas de dados nativas do Python que armazenam itens heterogêneos e permitem acesso eficiente a esses itens. A tarefa de dividir listas em blocos de tamanho N é muito comum quando há um limite de itens que seu programa pode processar em uma única solicitação.
Listas
Listas são estruturas de dados que podem conter valores ou itens de tipos variados. Exemplos de itens são inteiros, floats, strings etc. Listas são mutáveis, ou seja, você pode alterar o conteúdo de uma lista sem mudar sua identidade. Elas são escritas com colchetes [ ], e os itens são separados por vírgula (,). Vamos criar uma lista de números para praticar...
A função
range()gera uma sequência de números. Ela segue o formato:range([start], stop[, step]), em que "start" e "step" são parâmetros opcionais. start é o número inicial da sequência; stop é o limite superior, ou seja, gera números até ele, mas sem incluí-lo; step é a diferença entre cada número da sequência. Essa função é indexada a partir de 0, o que significa que, quando o início não é especificado, os índices da lista começam em 0, não em 1.Agora, digamos que você precise quebrar a lista em listas menores, cada uma com 5 elementos.
Uma forma de fazer isso é definindo um gerador. Um gerador é uma maneira elegante de definir um iterador. E o que é um iterador? Em poucas palavras, é um objeto que sabe como calcular e retornar o próximo item do objeto que está sendo percorrido. Você pode ler mais sobre iteradores e geradores no tutorial de iteradores em Python da DataCamp.
Definimos uma função que contém o gerador que faz o trabalho para nós.
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36, 37, 38, 39, 40], [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [71, 72, 73, 74, 75, 76, 77, 78, 79, 80], [81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [91, 92, 93, 94, 95]]Outra forma de fazer o mesmo é usando list comprehension. Você pode saber mais no tutorial de list comprehension em Python da DataCamp.
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 29, 30], [31, 32, 33, 34, 35, 36, 37, 38, 39, 40], [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], [51, 52, 53, 54, 55, 56, 57, 58, 59, 60], [61, 62, 63, 64, 65, 66, 67, 68, 69, 70], [71, 72, 73, 74, 75, 76, 77, 78, 79, 80], [81, 82, 83, 84, 85, 86, 87, 88, 89, 90], [91, 92, 93, 94, 95]]À medida que o problema fica mais complexo, as expressões de list comprehension podem se tornar difíceis de entender e depurar. Por isso, escrever uma função limpa, como com o gerador, pode ser mais útil e fácil de manter.
Neste tutorial, você viu duas maneiras de resolver um problema bem frequente ao trabalhar com listas. Confira o curso Data Types for Data Science da DataCamp.