Сравнение списков и массивов в Python
Список 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.