CodeGym /Cursos /Python SELF PT /Arrays Dinâmicos

Arrays Dinâmicos

Python SELF PT
Nível 52, Lição 3
Disponível

10.1 Características dos arrays dinâmicos

Arrays dinâmicos são estruturas de dados que podem mudar de tamanho durante a execução do programa. Eles permitem gerenciar eficientemente uma coleção de elementos, adicionando e removendo elementos sem a necessidade de definir previamente o tamanho do array.

Em Python, um array dinâmico é a lista (classe embutida list), que permite adicionar, remover e modificar elementos em qualquer posição.

Características dos arrays dinâmicos em Python

Características dos arrays dinâmicos:

  • Tamanho mutável: Arrays dinâmicos podem crescer e diminuir conforme necessário.
  • Acesso rápido por índice: O acesso aos elementos é feito em tempo constante O(1).
  • Gerenciamento automático de memória: Python gerencia automaticamente a alocação e liberação de memória para listas.
  • Métodos convenientes para trabalhar com elementos: Métodos embutidos permitem adicionar, remover e modificar elementos com facilidade.

Exemplo de criação e uso de um array dinâmico em Python:


# Criação de uma lista
dynamic_array = [1, 2, 3, 4, 5]

# Adicionando um elemento
dynamic_array.append(6)
print(dynamic_array)  # Saída: [1, 2, 3, 4, 5, 6]

# Removendo um elemento
dynamic_array.remove(3)
print(dynamic_array)  # Saída: [1, 2, 4, 5, 6]

# Acesso por índice
print(dynamic_array[2])  # Saída: 4

# Modificando um elemento
dynamic_array[2] = 10
print(dynamic_array)  # Saída: [1, 2, 10, 5, 6]

10.2 Vantagens e desvantagens dos arrays dinâmicos

Os arrays dinâmicos têm suas vantagens e desvantagens. Vamos analisá-las em detalhes.

Vantagens:

  • Flexibilidade: Arrays dinâmicos podem mudar de tamanho de acordo com as necessidades do programa, o que permite gerenciar eficientemente a memória e processar volumes variáveis de dados.
  • Acesso rápido por índice: Assim como arrays estáticos, arrays dinâmicos permitem acesso rápido aos elementos por índice em tempo constante O(1).
  • Facilidade de uso: Métodos embutidos em Python para trabalhar com listas (por exemplo, append, remove, insert) facilitam as manipulações com elementos, tornando o código mais legível e mantido.
  • Gerenciamento automático de memória: Python gerencia automaticamente a memória para arrays dinâmicos, liberando o programador da necessidade de alocar e liberar memória manualmente.

Desvantagens:

  • Realocação de memória: Ao aumentar o tamanho de um array dinâmico, pode ser necessário realocar memória, o que envolve a cópia de elementos para uma nova área de memória. Isso pode temporariamente retardar a execução do programa.
  • Custo de inserção e remoção de elementos: Inserir e remover elementos no meio do array requer deslocamento de elementos, o que leva tempo O(n).
  • Pouco mais de sobrecarga de gerenciamento: Comparado a linguagens de baixo nível, como C, arrays dinâmicos em Python têm custos adicionais associados ao gerenciamento automático de memória e tratamento de exceções.

10.3 Exemplos de uso e aplicação

Vamos ver alguns exemplos de uso de arrays dinâmicos em Python.

1. Implementação de uma lista dinâmica de tarefas:


tasks = []

# Adicionando tarefas
tasks.append("Task 1")
tasks.append("Task 2")
tasks.append("Task 3")

# Executando uma tarefa e removendo-a da lista
completed_task = tasks.pop(0)
print(f"Completed: {completed_task}")
print(f"Remaining tasks: {tasks}")  # Saída: Remaining tasks: ['Task 2', 'Task 3']

2. Implementação de uma lista dinâmica de objetos:


students = []

# Adicionando estudantes
students.append("Alice")
students.append("Bob")
students.append("Charlie")

# Removendo um estudante
students.remove("Bob")
print(f"Students after removal: {students}")  # Saída: Students after removal: ['Alice', 'Charlie']

# Adicionando um estudante em uma posição específica
students.insert(1, "David")
print(f"Students after insertion: {students}")  # Saída: Students after insertion: ['Alice', 'David', 'Charlie']
2
Tarefa
Python SELF PT, nível 52, lição 3
Bloqueado
Minha lista favorita
Minha lista favorita
2
Tarefa
Python SELF PT, nível 52, lição 3
Bloqueado
Eu amo listas ainda mais
Eu amo listas ainda mais
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION