Како направити торке у Питхон-у и зашто их користити?

Тупле је уграђени тип података у Питхон-у који се користи за складиштење колекције података. Слично је листи, али је мало бржи.

Међутим, његова ограничења чине листе пожељнијим у неким ситуацијама. У овом чланку ћу објаснити све што треба да знате да бисте почели да користите тупле.

Шта је тупле?

Као што је раније поменуто, тупле је један од уграђених типова података у Питхон-у који се користи за чување збирки података. Слична је Питхон листи по томе што складишти податке у итеративном формату налик низу. Међутим, за разлику од листе, тупле је непроменљив. То јест, једном створене, његове вредности се не могу мењати.

Додатни елементи се не могу додати, а постојећи елементи се не могу уклонити. Корка је, дакле, идеална за складиштење података који се не мењају. То чак може бити збирка података различитих типова. У следећем одељку ћемо разговарати о различитим начинима прављења торки у Питхон-у.

Како направити тупле у Питхон-у?

Постоје најмање три начина за креирање тупле у Питхон-у. У овом одељку ћемо покрити три најчешће методе које ћете вероватно користити и видети када читате код других.

Да бисте покренули следеће примере кода, мораћете да имате инсталиран Питхон. Ако немате већ инсталиран Питхон, ево корисног водича за инсталирање Питхон-а. Алтернативно, можете да покренете свој код у Питхон-у на мрежи као што је Гоогле Цолаб.

#1. Коришћење литерала тупле (заграде)

Најчешћи начин да видите торке дефинисане у Питхон-у је постављање колекције вредности између заграда. Ове вредности су одвојене зарезима. Следећи пример илуструје овај метод:

# Creates a tuple by placing values between parentheses
values = (1, 2, 3)

# Printing out the tuple to the screen
print(values)

# Printing out the type of values variable
print(type(values))

Покретање овог кода ће произвести следеће:

Као што можете видети из излаза, тупле садржи вредности којима смо га иницијализовали. Такође је типа <класа 'торка'>.

Када креирате тупле у Питхон-у, заграде нису неопходне. Стога су ове вредности = 1, 2, 3 једнако важеће као и ове вредности = (1, 2, 3). Међутим, препоручује се да користите заграде како би ваш код био разумљивији.

Прављење торки са једним елементом у Питхон-у је мало незгодно. Уместо да ставите само један елемент између заграда, морате додати и зарез на крају. Ево примера за илустрацију:

# Without trailing comma, this won't create a tuple
not_a_tuple = (1)

# With trailing comma, this will create a tuple
a_tuple = (1,)

# Printing not_a_tuple
print(not_a_tuple)

# Printing not_a_tuple's data type
print(type(not_a_tuple))

# Printing a_tuple
print(a_tuple)

# Printing a_tuple's data type
print(type(a_tuple))

Покретањем кода изнад, видећете да нот_а_тупле постаје инт вредности 1. Ово је важно имати на уму када креирате тупле.

#2. Коришћење функције конструктора

Други метод за креирање торки у Питхон-у користи функцију конструктора тупле. У овој методи, позивате функцију, прослеђујући итеративни објекат као што је листа као аргумент. Ово ће бити конвертовано у тупле. Ево примера:

# Creating tuple from a list of values
values = tuple([1, 2, 3])

# Printing out the values
print(values)

# Printing out the data type of the values identifier
print(type(values))

Као што видите, коришћење функције постиже исти резултат као и коришћење литерала. Међутим, функција вам омогућава да креирате тупле на основу динамичке вредности, као што је листа чије су вредности познате само у време извршавања. Са првим методом, морали бисте да знате вредности или идентификаторе који чине вашу торку док пишете код.

  Пре Мац ОС Кс-а: Шта је био НЕКСТСТЕП и зашто су га људи волели?

#3. Креирање празне торке

Док радите са торкама у свом коду, можда ћете морати да креирате празне торке. Празне торке се креирају како бисте очекивали. Можете користити или конструктор тупле или литерал за када их креирате. Ево примера који показује како се користи било који метод:

# Using the tuple literal
empty_tuple_1 = ()

# Using the constructor
empty_tuple_2 = tuple()

Празне торке су корисне када представљају празан скуп резултата. Размотрите следећу функцију:

def create_range(start, end):
    return tuple(range(start, end))

Ова функција креира тупле са вредностима од почетка, до крајње вредности коју проследите. Ако желите да понављате резултате функције, користили бисте нешто овако:

my_values = create_range(0, 5)

for value in my_values:
    pass

Ако сте дали 5 и 5 функцији цреате_ранге, резултат би био празан тупле. А ако бисте покушали да га поновите, имали бисте само нула итерација, а ваш код би се наставио нормално.

С друге стране, ако није било празних торки, а уместо тога сте добили вредност Ноне, онда би покушај итерације преко тога довео до грешке. Да бисте спречили рушење програма, морали бисте да примените тест за ивични случај да функција цреате_ранге враћа Ноне или било коју другу вредност која представља празан тупле.

Ово би довело до неуредног кода. У идеалном случају, желели бисте да избегавате посебне случајеве што је више могуће. То значи да повратна вредност свих функција треба да има идентичан интерфејс тако да ваш код функционише у општем случају што је више могуће. У овом случају, то значи стално враћање тупле, иако ће понекад бити празна.

Како приступити елементима

Постоје два начина да се приступи елементима тупле у Питхон-у. Први метод је индексирањем, а други деструктурирањем елемената. Прво ћемо испитати како приступити елементима по индексу.

Приступ елементима према индексу

Приступ елементима по индексу је сличан ономе како бисте приступили елементима листе по индексу. Ово се ради помоћу записа у угластим заградама. Торке користе систем индексирања заснован на нули, што значи да је први елемент индекс 0, а следећи је индекс 1 до последњег елемента.

Пример испод показује како приступити елементима по индексу:

# Creating a tuple
values = (1, 2, 3, 4)

# Accessing the first element
first_element = values[0]

# Accessing the fourth element(index 3)
fourth_element = values[3]

Такође можете користити негативно индексирање. Елемент са индексом -1 је последњи елемент, а елемент са индексом -2 је други од последњег елемента.

# Creating the tuple
values = (1, 2, 3, 4)

# Accessing the last element
last_element = values[-1]

# Accessing the second from last element
second_from_last_element = values[-2] 

Поред тога, можете приступити и подколекцијама елемената из торке тако што ћете је пресећи. Ово је слично ономе како бисте исечили листу. Ознака је следећа <тупле>[<start>: <end>: <skip>]. Следећи пример показује сечење:

# Creating the tuple
values = (1, 2, 3, 4, 5, 6, 7)

# Getting the first three elements
values[1: 3]

# Getting every other element
values[::2]

Итерација преко елемената

Тупле је објекат који се може понављати у Питхон-у. Због тога можете итерирати његове елементе користећи фор петљу, као што је приказано у следећем примеру:

values = (1, 2, 3, 4)

for value in values:
    print(value)

Овај метод приступа елементима је идеалан када желите да приступите свим елементима у кортици.

  Како да укључите тамни режим на Андроиду

Приступ елементима деструктурирањем

Да бисте објаснили деструктурирање, размотрите следећи сценарио где покушавамо да добијемо различите елементе у торку.

# Creating the tuple to record a user's information
person_record = (1, 'John Doe', '[email protected]')

# Accessing the different elements in the tuple to use in our code
id = person_record[1]
name = person_record[2]
email = person_record[3]

Питхон нам омогућава да користимо погоднији метод за приступ вредностима, као што је илустровано у наставку:

# Creating the tuple to record a user's information
person_record = (1, 'John Doe', '[email protected]')

id, name, email = person_record

Ово се зове деструктурирање. То је прва променљива, ид у овом случају, биће додељена прва вредност у тупле, а друга променљива другом елементу. Ово се наставља до краја тупле. Горњи пример је еквивалентан овоме:

id, name, email = (1, 'John Doe', '[email protected]')

У овом случају, уместо да смештамо тупле у променљиву, ми га одмах деструктурирамо. Када ово комбинујете са сазнањем да не морате да користите заграде када креирате торке, онда можете написати код овако.

id, name, email = 1, 'John Doe', '[email protected]'

На крају свега овога, имаћете ид, име и променљиве е-поште са вредностима 1, ‘Јохн Дое’ и ‘[email protected]‘. Ово је згодан и сажет начин креирања променљивих у Питхон-у које ћете видети у производном коду. Помаже сазнање да је у срцу ове елегантне синтаксе концепт торки.

Разлике између тупле и листе

Иако су ова два слична, неке кључне разлике чине да је сваки од њих прикладнији за одређени случај употребе. Разумевање ових разлика ће вам помоћи да одлучите који тип података најбоље користите и да напишете бољи и ефикаснији код.

АспецтТуплеЛистМемори СторагеСкладиштено у континуалној меморијиСкладиштење у различитим деловима меморијеМутабилитиИммутабле (не може се променити)Променљиво (може се променити)СпеедАццесс је бржиПриступ је спорији Тип података Обично складишти податке различитих типоваОбично складишти податке истог типаУобичајено складишти податке истог типа.Користите случајеве као што се обично користе сличне вредности за ознаке. Обично се користи за чување колекције сличних вредности као што су ознаке.

Предности торке

#1. Брже је

Због начина на који се вредности торке чувају у непрекидној меморији, приступ вредностима је бржи у поређењу са листом. Међутим, пошто се једном креирају, не могу се мењати, тупле нису увек најбоља структура података за складиштење колекција вредности.

Њихов идеалан случај употребе је складиштење пуно података у меморији који се не мењају, али ће им се приступати неколико пута током извршавања програма. У овом случају, ваш програм ће имати огромне користи од повећања перформанси торки.

#2. Врати више вредности

Можете користити тупле да бисте вратили више вредности из функције и деструктурирали резултат. На пример:

from random import randint

def create_two_numbers():
    first_num = randint(0, 9)
    second_num = randint(0, 9)

    return first_num, second_num

first_num, second_num = create_two_numbers()

У овом примеру имамо функцију која креира два случајна броја и оба их враћа у торку. Наредба ретурн фирст_нум, сецонд_нум је еквивалентна писању ретурн (први_број, други_нум). То је зато што су заграде опционе приликом креирања торки. Да бисмо приступили резултату, ми га деструктурирамо.

#3. Вредности су заштићене од писања

Торке су непроменљиве када се једном креирају. Они су, дакле, идеални за чување података у меморији која се не мења током извршавања програма. Они осигуравају да случајно не препишете податке негде другде у вашем коду.

  Како брзо претражити Гоогле диск

#4. Чувајте више типова података

Корке вам омогућавају да чувате вредности више типова података. Ово вам омогућава да креирате записе података, као што је складиштење података о кориснику у торку. Такође можете да складиштите компликованије ставке као што су функције, речници, друге торке, па чак и листе.

Уобичајене методе тупле

#1. цоунт()

Објекат тупле садржи метод цоунт, који броји колико пута се елемент појављује. На пример:

# Creating a tuple with several numbers
values = (1, 2, 3, 4, 5, 4, 4, 6)

# Counting the number of fours
n_fours = values.count(4)

# Prining out the number of fours
print(n_fours)

Из овог примера можемо видети да се број 4 појављује тачно три пута у нашој точки.

#2. индекс()

Метод индекса се може користити за проналажење индекса првог појављивања вредности у тупле. Ако вредност не постоји, биће избачен изузетак ВалуеЕррор. Ево неког кода који илуструје како функционише индексни метод:

# Creating a tuple with several numbers
values = (1, 2, 3, 4, 5, 4, 4, 6)

# Search for index of 4
index_of_four = values.index(4)
print("Index of four:", index_of_four)

# Search for index of 9
index_of_nine = values.index(9)
print("Index of nine:", index_of_nine)

А када покренемо горњи код, ово је излаз:

У овом случају, индекс 4 је 3, а код је радио без проблема. Али када је дошло до проналажења индекса 9, програм је направио изузетак. Важно је руковати таквим изузецима када пишете Питхон програме који користе метод индекса.

#3. лен()

Као и сви итеративни објекти у Питхон-у, торке имају својство дужине којем можете приступити када проследите тупле као аргумент функцији лен().

# Creating a tuple
values = (1, 2, 3, 4)

# Getting the length
length = len(values)

# Print the output
print(length)

Ово је резултат покретања горњег кода.

#4. мин() и мак()

Методе мин и мак функционишу тако што пролазе кроз сваки елемент у итерабле и упоређују да ли је већи или мањи од претходног. На крају, мак ће вратити највећи елемент у итерабле, док мин враћа најмањи.

Са бројевима, операција је очигледна. Са стринговима, Питхон ће користити абецедни ред. Најмања реч, коју враћа мин, је прва реч ако су низови написани абецедним редом. Док је највећа реч последња реч. Ако итерабле садржи мешавину различитих типова података, тада ће обе операције бити неуспешне јер Питхон не зна како да упореди различите типове података.

Ево примера кода:

# Creating tuple with values
values = (1, 2, 3, 4, 5)

# Getting the largest value
largest = max(values)

# Getting the smallest value
smallest = min(values)

# Output the results
print(largest)
print(smallest)

#5. сортирано()

Сортирана функција у Питхон-у преузима објекат који се може понављати и враћа листу сортираних елемената. Можете позвати сортирану функцију, проследити тупле као аргумент и добити елементе торке сортиране на листи. Да бисте сортирану листу претворили у тупле, можете користити функцију конструктора. Ево примера:

# Creating a tuple with values in random order
values = (1, 5, 3, 3, 2, 4)

# Using sorted to sort the values into a list
sorted_list = sorted(values)

# Converting the list into a tuple
sorted_tuple = tuple(sorted_list)

# Printing the output
print(sorted_tuple)

#6. Сабирање и множење торки

Операција сабирања на две торке их једноставно спаја заједно. Операција множења понавља елементе торке онолико пута колико је вредност коју сте помножили. Ево примера који илуструје два примера.

# Create a tuple with some values
values = (1, 2, 3, 4, 5)

# Create a new tuple using addition
added = values + values

# Create a new tuple using multiplication
multiplied = values * 2

print("values + values =", added)
print("values * 2 =", multiplied)

Завршне речи

У овом чланку сте сазнали да:

  • Торке су објекти налик листама који се користе за чување колекција вредности.
  • За разлику од листа, оне су непроменљиве.
  • Они су бржи и ефикаснији од листа.
  • Могу се конструисати коришћењем заграда и одвајањем вредности зарезима.
  • Такође се могу конструисати помоћу функције конструктора тупле.
  • Можете приступити појединачним вредностима користећи индексни систем заснован на нули.
  • Такође можете деструктурирати вредности из тупле.
  • Такође можете итерирати вредности користећи фор-петљу.
  • Различите методе које можете користити са торком.

Затим ћете можда желети да погледате више Питхон садржаја, као што су Питхон Лист Метходс и Питхон Дицтионари Метходс.