Рубрики
Без рубрики

Динамический массив Python: Реализация с примерами

В динамическом массиве python, как только заразная память заполнена, выделяется больший кусок памяти. Содержимое исходного массива копируется в это новое пространство, и доступные слоты заполняются непрерывно.

Автор оригинала: Team Python Pool.

Динамический массив Python: Реализация с примерами

Привет, кодеры!! В этой статье мы обсудим реализацию динамического массива python. Мы также рассмотрим различные примеры, чтобы прояснить нашу концепцию. Массив в Python-это контейнер, содержащий фиксированное количество элементов, имеющих один и тот же тип данных.

Что такое динамический массив в Python?

Динамический массив похож на обычный массив. Разница между ними заключается в том, что размер динамического массива может быть динамически изменен во время выполнения. Нам не нужно заранее указывать размер массива. В динамическом массиве, как только заразная память заполнена, выделяется больший кусок памяти. Содержимое исходного массива копируется в это новое пространство, и доступные слоты заполняются непрерывно.

В Python объекты списка изменчивы. Это означает, что мы можем легко добавлять или удалять элемент из списка во время выполнения без указания какого-либо размера. Итак, список действует как динамический массив в Python.

Пример 1: Создание пустого динамического массива python:

list1 = []
type (list1)

ВЫХОД:

< class ' list ' >

Пример 2: Добавление элементов в пустой список:

list1=[]
list1.append(1)
list1.append(5)
print(list1)

ВЫХОД:

[ 1 , 5 ]

Здесь мы использовали метод append() для динамического добавления элементов в список. Этот метод добавляет элемент в конец списка.

Пример 3: Удаление элемента из списка:

list1.pop()
print(list1)

ВЫХОД:

[ 1 ]

Мы использовали метод pop() для удаления последнего элемента списка. Этот метод удаляет элемент указанной позиции. Если позиция не указана, то удаляется последний элемент.

Логика реализации динамических массивов Python:

Если необходимо добавить список, скажем arr 1, размер которого больше размера текущего массива, то необходимо выполнить следующие действия:

  • Выделите новый массив,скажем arr2, имеющий большую емкость
  • Установите[i], for,1….n-1, где n-текущий номер элемента.
  • Set, как теперь arr2-это наш новый список.
  • Теперь просто добавьте новый элемент в arr1.

Давайте посмотрим на его реализацию в Python:

import ctypes 

class DynamicArray(object): 
	
	def __init__(self): 
	 
	 
	.make_array(self.capacity) 
		
	def __len__(self): 

		return self.n 
	
	def __getitem__(self, k): 

		if not 0 self.n: 
			print("please enter appropriate index..") 
			return
		
		if.capacity: 
			self._resize(2*self.capacity) 
			
		
		for i in range(self.n-1,index-1,-1): 
		.A[i] 
			
		
	 
	


		
	def delete(self): 

		if: 
			print("Array is empty deletion not Possible") 
			return
		
	
	
	
	
	def removeAt(self,index): 
	

		if: 
			print("Array is empty deletion not Possible") 
			return
				
		if index<0 or.n: 
			return IndexError("Index out of bound....deletion not possible")		 
		
		if.n-1: 
		
		
			return		
		
		for i in range(index,self.n-1): 
		.A[i+1]			 
			
		
	
	

		
	def _resize(self, new_cap): 

	.make_array(new_cap) 
		
		for k in range(self.n):  
		.A[k] 
			
	 
	 
		
	def make_array(self, new_cap): 

		return (new_cap * ctypes.py_object)()

Объяснение:

Сначала мы создали класс динамического массива, который будет вести себя как список Python. Давайте подробно разберемся в различных функциях:

def __init__(self):

  • self.n -> подсчитайте фактическое количество элементов
  • self.capacity -> емкость по умолчанию установлена как 1
  • <сильное>я.A -> массив с заданной емкостью

def __len__(self):

  • Возвращает количество элементов, хранящихся в массиве

def __getitem__(self, k):

  • Верните элемент в положение k
  • Сначала он проверяет, находится ли позиция k в пределах массива
  • Если он находится в пределах границы массива, возвращается элемент в этой позиции

def append(self, ele):

  • Добавьте элемент в конец массива
  • Если в массиве недостаточно доступной емкости, размер массива удваивается
  • self.n устанавливается в индекс элемента и увеличивается

def insert(self,item,index):

  • Вставьте данный элемент в указанный индекс

def delete(self):

  • Удалите элемент массива из конца массива

def remove(self,index):

  • Удалить элемент по указанному индексу

def _resize(self, new_cap):

  • Измените размер массива до большего размера
  • Объявите новый массив большего размера
  • Ссылка на все существующие значения
  • Вызовите новый больший массив
  • Сброс емкости

def make_array(self, new_cap):

  • Возвращает новый массив с емкостью new_cap

Должен Читать

  • Ошибка памяти Python | Как решить ошибку памяти в Python
  • Работа с CRUD в Python
  • Проблема рюкзака в Python С различными способами решения

Вывод:

На этом мы заканчиваем нашу статью. Динамический массив Python относительно легко использовать с помощью Python, поскольку список сам действует как динамический массив. Однако можно реализовать свой собственный код на Python, используя href=”https://docs.python.org/3/library/ctypes.html”>ctypes модуль. href=”https://docs.python.org/3/library/ctypes.html”>ctypes модуль.

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!