Как работят масивите и списъците в Python

Как работят масивите и списъците в Python

Масивите и списъците са едни от най -полезните структури от данни в програмирането - въпреки че малко хора наистина ги използват с пълния си потенциал. Днес ще ви разкажа за основите, заедно с няколко прости примера на Python.





Предпоставки

Не е нужно много да знаете предварително, за да научите тези понятия. Основните познания за парадигмите за програмиране и Python ще бъдат полезни, но не са задължителни. Прочетете нашата основни примери на Python ако не знаете откъде да започнете. Ако смятате, че Python е безполезен език, вижте нашите причини защо не е така.





Докато следните основни идеи могат да бъдат приложени към всеки език, аз ще демонстрирам примерите в Python. Това е лесен за изучаване език и осигурява отлична платформа за разбиране на случващото се. В допълнение към това, tutorialspoint.com осигурява отличен онлайн интерпретатор на Python - дори не е нужно да инсталирате Python, ако не искате (ако го направите, разгледайте нашето ръководство за виртуални среди).





Структури на данни

Какво е a структура на данни ? На най -основното си ниво структурата на данните е начин за ефективно съхраняване на данни. Лесно е да се объркате, защото структурите на данните не са типове данни . Типовете данни казват на компилатора (или в случая на Python на интерпретатора) как се предвижда да се използват данните. Структурите на данни определят операции, които могат да се извършват, и често прилагат специфични правила и разпоредби.

Може би сте чували за някои линейна типове данни (елементите са последователни):



  • Масив
  • Матрица
  • Таблица за справки

По същия начин, списъци често съдържат правила и методи за регулиране на начина им на работа. Някои често срещани списъци са:

  • Свързан списък
  • Двойно свързан списък
  • Списък с масиви или динамичен масив

Има множество различни структури от данни. Може би сте чували двоични дървета , графики , или хешове . Днес ще обсъждам основите, но може да пожелаете да научите повече, след като ви е удобно.





Масив

Нека започнем отначало. Масивът е проста колекция от (свързани) стойности. Тези стойности се наричат ​​елементи. Обикновено те могат да бъдат всеки тип данни, който харесвате, включително обекти или други списъци! Основното предупреждение при масивите е, че всички данни трябва да са еднакви - не можете да съхранявате смесени низове и цели числа. Вие почти винаги трябва да посочвате колко елемента искате да съхранявате. Променлив размер или динамични масиви съществуват, но масивите с фиксирана дължина са по-прости за начало.

Python усложнява нещата донякъде. Това прави нещата много лесни за вас, но не винаги се придържа към строги дефиниции на структурите на данните. Повечето обекти в Python обикновено са списъци, така че създаването на масив всъщност е повече работа. Ето малко стартов код:





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

Първият ред импортира масив модул - това е необходимо за работа с масиви. Вторият ред създава нов масив, наречен числа и го инициализира със стойностите 2, 4, 6 и 8. На всеки елемент се присвоява a цяло число стойност, наречена а ключ или индекс . Ключовете започват от нула , така числа [0] ще има достъп до първия елемент ( 2 ):

Може би се чудите какво 'аз' се използва за. Това е тип код което казва на Python, че масивът ще съхранява цели числа. Подобни неща обикновено не са необходими в Python (ще се считат за „непитонични“). Причината за това е проста. Масивите в Python са много тънка обвивка в подлежащите C масиви на вашата операционна система. Това означава, че те са бързи и стабилни, но не винаги могат да се придържат към синтаксиса на Python.

как да преместите инсталирани програми на друго устройство windows 10

Не можете да съхранявате смесени типове в тези масиви. Кажете, че искате да съхранявате низа „makeuseof.com“:

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

Това няма да бъде разрешено и ще създаде изключение:

Ето как можете да отпечатате всички елементи:

print(numbers)

Този метод за достъп до елементи на масива работи добре и е идеален за правилната задача. Това, за което не е добре, е достъпът до целия масив. Програмистите по своята същност са мързеливи, така че с удоволствие ще напиша повече, по -добър код, ако това означава, че мога да улесня поддръжката и да намаля усилията за копиране и поставяне.

Всеки език за програмиране ще реализира някакъв цикъл, който е идеален за повторение (циклиране) над елементите на списъка. Най -често срещаните контури са докато и за . Python прави нещата още по -лесни, като предоставя за в цикъл:

for number in numbers:
print(number)

Забележете как не е необходимо да осъществявате достъп до елементи по техния ключ. Това е много по -добър начин за работа с масив. Алтернативен начин за повторение на списък е с за цикъл:

for i in range(len(numbers)):
print(numbers[i])

Това прави точно същото нещо като предишния пример, въпреки че трябваше да посочите броя на елементите в масива ( len (коли) ), заедно с преминаването i като ключ към масива. Това е почти точно кода, който за в цикли се изпълняват. Този начин осигурява малко по -голяма гъвкавост и е малко по -бърз (въпреки че за в контурите са повече от достатъчно бързи мнозинство на времето.)

Списъци

Сега, когато знаете как работят масивите, нека разгледаме списък. Понякога това може да бъде объркващо, тъй като хората използват различна терминология и списъци са масиви ... вид.

Списъкът е специален тип масив. Най -голямата разлика е, че списъците могат да съдържат смесен типове (не забравяйте, че масивите трябва да съдържат елементи от същия тип). Списъците са много лесни в Python:

как да влезете инкогнито във facebook messenger
cars = ['Ford', 'Austin', 'Lancia']

Забележете как не е нужно да импортирате масив модул?

Този синтаксис декларира списък, наречен автомобили. Вътре в квадратните скоби всеки елемент от списъка е деклариран. Всеки елемент е разделен със запетая и тъй като всеки елемент е низ, вие ги декларирате вътре в кавички. Python знае, че това е обект, така че печат изявление ще изведе съдържанието на списъка:

print(cars)

Подобно на масива, можете да повторите елементите на списъка, като използвате цикли:

for car in cars:
print(car)

Истинският партиен трик на списъците е техният смесен тип. Продължете и добавете някои допълнителни данни:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

Това не е проблем за Python - дори не предизвика изключение:

Лесно е да добавяте нови елементи към списък (нещо не е възможно с масиви):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

Можете също да обедините два списъка в един:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

Също толкова лесно е да премахнете елементи с помощта на Премахване синтаксис:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

Това обхваща основите на списъците и масивите в Python. Защо не помислите за проект за кодиране, като четене и писане в Google Sheets, четене на json данни. Може би бихте могли да използвате новите си умения, за да направите някои персонализирани бутони за бърз достъп . Въпреки че са различен език за програмиране, тези принципи на масива все още се прилагат.

Дял Дял Туит електронна поща 5 съвета за зареждане на вашите VirtualBox Linux машини

Уморени ли сте от лошото представяне на виртуалните машини? Ето какво трябва да направите, за да увеличите производителността на VirtualBox.

Прочетете Напред
Свързани теми
  • Програмиране
  • Програмиране
  • Python
За автора Джо Кобърн(136 статии са публикувани)

Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети с дронове или пише музика, често може да бъде намерен да прави снимки или да произвежда видеоклипове.

Още от Джо Кобърн

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате