CodeGym /Cursos /Python SELF PT /Arrays de tamanho fixo

Arrays de tamanho fixo

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

9.1 Características dos arrays de tamanho fixo

Arrays de tamanho fixo são aqueles cujo tamanho é determinado no momento da criação e não pode ser alterado durante a execução do programa. No Python, você pode criar arrays de tamanho fixo usando a biblioteca array ou usando listas. Embora listas no Python possam mudar de tamanho, elas são usadas de forma semelhante a arrays em outras linguagens.

Características dos arrays de tamanho fixo:

  • Tamanho fixo: O tamanho do array é definido na sua criação e não pode ser alterado.
  • Homogeneidade: Todos os elementos do array devem ser do mesmo tipo.
  • Acesso rápido por índice: O acesso aos elementos do array é feito em tempo constante O(1).
  • Tamanho imutável: O número de elementos do array permanece constante, e não é possível adicionar novos elementos.

Exemplo de criação de um array de tamanho fixo em Python:

Usando a biblioteca array:


import array

# Criando um array de inteiros (tipo 'i' para int)
arr = array.array('i', [1, 2, 3, 4, 5])

# Acesso aos elementos
print(arr[2])  # Saída: 3

# Modificando o valor de um elemento
arr[2] = 10
print(arr)  # Saída: array('i', [1, 2, 10, 4, 5])

Usando lista (imitando um array de tamanho fixo):


# Criando uma lista de tamanho fixo
arr = [0] * 5

# Inicialização dos elementos
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5

# Acesso aos elementos
print(arr[2])  # Saída: 3

# Modificando o valor de um elemento
arr[2] = 10
print(arr)  # Saída: [1, 2, 10, 4, 5]

9.2 Vantagens e desvantagens dos arrays de tamanho fixo

Tudo tem seus prós e contras, e com arrays fixos não é diferente.

Vantagens:

  • Acesso rápido por índice: O acesso a qualquer elemento do array é feito em tempo constante O(1), o que torna os arrays muito eficientes para leitura de dados.
  • Simplicidade de implementação: Arrays são simples de entender e usar, fáceis de implementar e aplicar em várias tarefas.
  • Uso eficiente de memória: Como o tamanho do array é fixo, a memória é alocada de uma vez só na criação do array, evitando gastos com realocação de memória.
  • Previsibilidade: O tamanho fixo do array simplifica o gerenciamento de memória e a previsibilidade no uso de recursos.

Desvantagens:

  • Tamanho imutável: O tamanho do array é definido na sua criação e não pode ser alterado. Isso significa que você precisa saber o tamanho necessário do array de antemão ou correr o risco de alocar memória em excesso.
  • Custo de inserção e remoção: Inserir e remover elementos pode ser caro em termos de tempo, pois requer deslocar elementos. No pior caso, a inserção ou remoção de um elemento no meio do array leva O(n) de tempo.
  • Uso ineficiente de memória: Se o array não for usado completamente, as células de memória restantes ficam vazias, o que pode levar a um uso ineficiente de memória.
  • Flexibilidade limitada: Arrays não permitem alterar o tamanho dinamicamente, o que os torna menos flexíveis em comparação com estruturas de dados dinâmicas, como listas.

9.3 Exemplos de uso e aplicação

Aqui estão alguns exemplos de uso e aplicação de arrays de tamanho fixo.

Exemplo 1: Tabelas e matrizes

Arrays de tamanho fixo são frequentemente usados para representar tabelas e matrizes, onde o tamanho é conhecido de antemão.


import numpy as np

# Criando uma matriz 3x3 de tamanho fixo
matrix = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# Acesso aos elementos da matriz
print(matrix[1][2])  # Saída: 6

# Modificando um elemento da matriz
matrix[1][2] = 10
print(matrix)
# Saída:
# [[ 1  2  3]
#  [ 4  5 10]
#  [ 7  8  9]]

Exemplo 2: Buffers e caches

Arrays de tamanho fixo são usados para criar buffers e caches, onde o tamanho do buffer é conhecido de antemão e não muda.


# Buffer de tamanho fixo para leitura de dados
buffer_size = 1024
buffer = bytearray(buffer_size)

# Preenchendo o buffer com dados
data = b"Hello, World!"
buffer[:len(data)] = data

print(buffer[:len(data)])  # Saída: b'Hello, World!'

Exemplo 3: Armazenamento de dados sobre tempos e datas

Arrays de tamanho fixo podem ser usados para armazenar dados sobre tempos e datas, como o número de dias em cada mês.

Neste exemplo, simulamos o comportamento de um array fixo através da classe list:


# Número de dias em cada mês (não bissexto)
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# Acesso aos dados
month = 2  # Fevereiro
print(f"Em fevereiro há {days_in_month[month - 1]} dias")  # Saída: Em fevereiro há 28 dias
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION