Сравнение списков и массивов в Python

Опубликовано: 5 Января, 2022

Список Python

В языке программирования Python есть четыре типа коллекций данных: список, кортеж, набор и словарь . Список представляет собой изменяемую и упорядоченную коллекцию, т. Е. Элементы списка могут быть изменены, и он поддерживает порядок вставки своих элементов. Благодаря свойству поддержания порядка каждый элемент списка имеет фиксированный индекс, что позволяет списку иметь повторяющиеся элементы. В Python список очень полезен, поскольку он может содержать неоднородные элементы.

Ниже приведены некоторые операции, которые можно выполнять в списке:

# Python program to demonstrate
# some operations on list
# Declaring a List of integers
IntList = [ 10 , 20 , 30 ]
print ( "List of numbers: " )
# Printing the list
print (IntList)
# Declaring a List of strings
StrList = [ "Geeks" , "For" , "Geeks" ]
print ( "List of Strings: " )
# Printing the list
print (StrList)
# Declaring a list of non-homogeneous elements
Non_homogeneous_list = [ 10 , "Geeks" , 20.890 ,
"for" , 30 , "geeks" ]
print ( "List of non-homogeneous elements: " )
# Printing the list
print (Non_homogeneous_list)
# Printing size of a list
print ( "Size of the Non-homogeneous list: " ,
len (Non_homogeneous_list))
# Declaring a list
NewList = [ "Geeks" , "for" , "Geeks" ]
print ( "Original List: " , NewList)
# Adding an item to the list
# Adding an item in the list
# using the append method
NewList.append( "the" )
# Printing the modified list
print ( "After adding an element the"
"list becomes: " )
print (NewList)
# Adding an item in the list using the insert
# method to add an element at a specific position
NewList.insert( 3 , "is" )
# Printing the modified list
print ( "After adding an element at"
"index 3 the list becomes: " )
print (NewList)
# Adding multiple items to the list at the
# end using extend method
NewList.extend([ "best" , "CS" , "website" ])
# Printing the modified list
print ( "After adding 3 elements at the"
"end, the list becomes: " )
print (NewList)
# Removing an item from the list
# Removing an element by
# writing the element itself
NewList.remove( "the" )
# Printing the modified list
print ( "After removing an element"
"the list becomes: " )
print (NewList)
# Removing an element by
# specifying its position
NewList.pop( 3 )
# Printing the modified list
print ( "After removing an element "
"from index 3 the list becomes: " )
print (NewList)
Выход:
Список номеров: 
[10, 20, 30]
Список строк: 
["Гики", "Для", "Вундеркинды"]
Список неоднородных элементов: 
[10, «Компьютерщики», 20,89, «для», 30, «компьютерные фанаты»]
Размер неоднородного списка: 6
Исходный список: ["Гики", "для", "Гики"]
После добавления элемента список становится: 
["Гики", "для", "Гики", "тот"]
После добавления элемента с индексом 3 список становится: 
["Гики", "для", "Гики", "есть", "тот"]
После добавления 3 элементов в конце список становится: 
["Компьютерщики", "для", "Гики", "это", "лучший", "лучший", "CS", "веб-сайт"]
После удаления элемента список становится: 
["Гики", "для", "Гики", "это", "лучший", "CS", "веб-сайт"]
После удаления элемента из индекса 3 список становится: 
["Гики", "для", "Гики", "лучший", "CS", "веб-сайт"]

Чтобы получить более подробные сведения о списке Python, щелкните здесь.

Массив Python

Массивы Python также являются коллекцией, но их элементы хранятся в непрерывных ячейках памяти. Он может хранить только однородные элементы (элементы одного типа данных). Массивы очень полезны при выполнении математических операций с элементами. В отличие от списков, массивы нельзя объявлять напрямую. Для создания массива array должен быть импортирован, а синтаксис объявления отличается от синтаксиса списка.

Ниже приведены некоторые операции, которые можно выполнять с массивом:

# Python program to demonstrate
# some operations on arrays
# importing array module
import array as arr
# declaring an array of integer type
# 'i' signifies integer type and
# elements inside [] are the array elements
a1 = arr.array( 'i' , [ 10 , 20 , 30 ])
# printing array with
# data type and elements
print ( "Array a1: " , a1)
# printing elements of array
print ( "Elements of the array"
"a1 is : " , end = " " )
for i in range ( len (a1)):
print (a1[i], end = ", " )
print ()
# Declaring an array of float type
# 'd' signifies integer type and
# elements inside [] are the array elements
a2 = arr.array( 'd' , [ 1.5 , 2.4 , 3.9 ])
# printing elements of array
print ( "Elements of the array"
"a2 is : " , end = " " )
for i in range ( len (a2)):
print (a2[i], end = ", " )
print ()
# Adding an item to the array
# Printing the elements of array a1
print ( "Original elements of the"
"array a1 is : " , end = " " )
print ( * a1)
# Adding an element at the end of
# array by using the append method
a1.append( 40 )
# printing the modified array
print ( "Elements of the array a1"
"after adding an element"
"at last: " , end = " " )
print ( * a1)
# Adding an element to the array at a
# specific index using the insert method
a1.insert( 3 , 35 )
# printing the modified array
print ( "Elements of the array a1"
"after adding an element"
"at index 3: " , end = " " )
print ( * a1)
# Removing an element from the array
# Removing an element by writing the elements itself
a1.remove( 20 )
# Printing the modified array
print ( "Array a1 after removing"
"element 20: " , end = " " )
print ( * a1)
# Removing an element of a specific index
# Removing the element of array a1 present at index 2
a1.pop( 2 )
# Printing the modified array
print ( "Array a1 after removing"
"element of index 2: " , end = " " )
print ( * a1)
Выход:
Массив a1: array ('i', [10, 20, 30])
Элементы arraya1: 10, 20, 30, 
Элементы arraya2: 1.5, 2.4, 3.9, 
Исходные элементы массива a1: 10 20 30
Элементы массива a1 после добавления элемента последним: 10 20 30 40
Элементы массива a1 после добавления элемента по индексу 3:10 20 30 35 40
Массив a1 после удаления элемента 20:10 30 35 40
Массив a1 после удаления элемента индекса 2:10 30 40

Чтобы получить более подробные сведения о массиве Python, щелкните здесь.

Сходства в списке и массиве Python

И массив, и списки используются для хранения данных: цель обеих коллекций - хранить данные. В то время как список используется для хранения однородных, а также неоднородных данных, массив может хранить только однородные данные.

# Python program to demonstrate data
# storing similarities in array and list
# importing array module
import array as arr
# Declaring a Homogeneous List of strings
Homogeneous_List = [ "Geeks" , "For" , "Geeks" ]
print ( "List of Strings: " )
# Printing the list
print (Homogeneous_List)
# Declaring a list of
# non-homogeneous elements
Non_homogeneous_list = [ 10 , "Geeks" ,
20.890 , "for" , 30 , "geeks" ]
print ( "List of non-homogeneous elements: " )
# Printing the list
print (Non_homogeneous_list)
# declaring an array of float type
# 'd' signifies integer type and
# elements inside [] are the array elements
Homogeneous_array = arr.array( 'd' ,
[ 1.5 , 2.4 , 3.9 ])
# printing elements of array
print ( "Elements of the array is"
" : " , end = " " )
for i in range ( len (Homogeneous_array)):
print (Homogeneous_array[i], end = ", " )
Выход:
Список строк: 
["Гики", "Для", "Вундеркинды"]
Список неоднородных элементов: 
[10, «Компьютерщики», 20,89, «для», 30, «компьютерные фанаты»]
Элементы массива: 1.5, 2.4, 3.9,

List и Array являются изменяемыми: List, как и массив, могут изменять свои элементы, т. Е. Они изменяемы.

# Python program to demonstrate
# both the list and array is mutable
# importing array module
import array as arr
# Declaring a list
List1 = [ "Geeks" , 1 , "Geeks" ]
# Printing original list
print ( "Original list: " , List1)
# Changing the value of the
# element at a specific index
List1[ 1 ] = "for"
# Printing modified list
print ( " Modified list: " , List1)
# Declaring an array with integers values
Array1 = arr.array( 'i' ,
[ 10 , 20 , 30 , 37 , 50 , ])
# Printing original array
print ( " Original array: " , end = " " )
for i in range ( len (Array1)):
print (Array1[i], end = " " )
# Updating an element in the array
Array1[ 3 ] = 40
# Printing modified Array:
print ( " Modified array: " , end = "")
for i in range ( len (Array1)):
print (Array1[i], end = " " )
Выход:
Исходный список: ["Гики", 1, "Гики"]

Измененный список: ["Гики", "для", "Гики"]

Исходный массив: 10 20 30 37 50 
Модифицированный массив: 10 20 30 40 50

Доступ к элементам как списка, так и массива можно получить по индексу и итерации: чтобы получить доступ к элементам списка и массива, у нас есть возможность использовать номер индекса или мы можем перемещаться по ним путем итерации.

И список, и массив могут быть нарезаны: операция нарезки действительна как для списка, так и для массива, чтобы получить диапазон элементов.

# Python program to demonstrate
# that both list and array can
# be accessed sliced
# importing array module
import array as arr
# Declaring a list
List1 = [ 10 , 20 , 30 , 20 , 10 , 40 ]
# Accessing a range of elements in the
# list using slicing operation
# Printing items of the list
# from index 1 to 3
print ( "List elements from "
"index 1 to 4: " , List1[ 1 : 4 ])
# Printing items of the
# list from index 2 to end
print ( "List elements from "
"index 2 to last: " , List1[ 2 :])
# Declaring an array
Array1 = arr.array( 'i' ,
[ 10 , 20 , 30 , 40 , 50 , 60 ])
# Accessing a range of elements in the
# array using slicing operation
Sliced_array1 = Array1[ 1 : 4 ]
print ( " Slicing elements of the "
"array in a range from index 1 to 4: " )
print (Sliced_array1)
# Print elements of the array
# from a defined point to end
Sliced_array2 = Array1[ 2 :]
print ( " Slicing elements of the "
"array from 2nd index till the end: " )
print (Sliced_array2)
Выход:
Перечислить элементы с индекса 1 по 4: [20, 30, 20]
Перечислить элементы от индекса 2 до последнего: [30, 20, 10, 40]

Нарезка элементов массива в
диапазон от 1 до 4: 
array ('i', [20, 30, 40])

Нарезка элементов массива из
2-й индекс до конца: 
array ('i', [30, 40, 50, 60])

Различия между списком Python и массивом:

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

Потребление памяти между массивом и списками: список и массив занимают разный объем памяти, даже если они хранят одинаковое количество элементов. В этом случае массивы оказываются более эффективными, поскольку они хранят данные очень компактно.

# Python program to demonstrate the
# difference in memory consumption
# of list and array
# importing array module
import array as arr
# importing system module
import sys
# declaring a list of 1000 elements
List = range ( 1000 )
# printing size of each element of the list
print ( "Size of each element of"
" list in bytes: " , sys.getsizeof( List ))
# printing size of the whole list
print ( "Size of the whole list in"
" bytes: " , sys.getsizeof( List ) * len ( List ))
# declaring an array of 1000 elements
Array = arr.array( 'i' , [ 1 ] * 1000 )
# printing size of each
# element of the Numpy array
print ( "Size of each element of "
"the array in bytes: " , Array.itemsize)
# printing size of the whole Numpy array
print ( "Size of the whole array"
" in bytes: " , len (Array) * Array.itemsize)
Выход:
Размер каждого элемента списка в байтах: 48
Размер всего списка в байтах: 48000
Размер каждого элемента массива в байтах: 4
Размер всего массива в байтах: 4000

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

# Python program to demonstrate the
# difference between list and array in
# carrying out mathematical operations
# importing array module
from array import numpy
# declaring a list
List = [ 1 , 2 , 3 ]
# declaring an array
Array = array([ 1 , 2 , 3 ])
try :
# adding 5 to each element of list
List = List + 5
except (TypeError):
print ( "Lists don't support list + int" )
# for array
try :
Array = Array + 5
# printing the array
print ( "Modified array: " , Array)
except (TypeError):
print ( "Arrays don't support list + int" )
Выход:
Списки не поддерживают list + int
Измененный массив: [6 7 8]

Изменение размера: однажды объявленные массивы не могут быть изменены. Единственный способ - скопировать элементы старого массива в массив большего размера. Хотя размер списка можно очень эффективно изменять.

Данные, которые могут быть сохранены: List может хранить как однородные, так и неоднородные данные, в то время как массивы поддерживают хранение только однородных данных.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.