Листа је контејнер који у уређеном низу чува ставке различитих типова података (интс, флоатс, Боолеан, стрингови итд.). То је важна структура података која је уграђена у Питхон. Подаци су записани у угластим заградама ([]), а вредности су одвојене зарезом (,).
Ставке на листи индексирају се првим елементом који започиње индексом 0. У креирану листу можете унети промене додавањем нових ставки или ажурирањем, брисањем постојећих. Такође може имати дуплиране ставке и угнежђену листу.
На листи је доступно много метода, а најважнији је индекс ().
У овом упутству ћете научити:
- Индекс Питхон листе ()
- Коришћење фор-лооп за добијање индекса елемента на листи
- Коришћење вхиле-лооп и лист.индек ()
- Коришћење разумевања листе да би се добио индекс елемента на листи
- Коришћење Енумерате да бисте добили индекс елемента на листи
- Коришћење филтера за добијање индекса елемента на листи
- Коришћење НумПи за добијање индекса елемента на листи
- Коришћењем море_итертоолс.лоцате () за добијање индекса елемента на листи
Индекс Питхон листе ()
Метода лист индек () помаже вам да пронађете први најнижи индекс датог елемента. Ако се унутар листе налазе дуплицирани елементи, враћа се први индекс елемента. Ово је најлакши и најједноставнији начин за добијање индекса.
Поред уграђене методе индекса листе (), можете да користите и друге начине за добијање индекса, попут прегледавања листе, коришћењем метода разумевања листе, енумерате (), метода филтрирања.
Метода лист индек () враћа први најнижи индекс датог елемента.
Синтакса
list.index(element, start, end)
Параметри
Параметри | Опис |
елемент | Елемент за који желите да добијете индекс. |
почетак | Овај параметар није обавезан. Можете да дефинишете индекс старт: да бисте тражили елемент. Ако није дата, подразумевана вредност је 0. |
крај | Овај параметар није обавезан. Можете одредити крајњи индекс за елемент који треба претраживати. Ако се не да, разматра се до краја листе. |
Повратна вредност
Метода лист индек () враћа индекс датог елемента. Ако елемент није присутан на листи, метода индек () бациће грешку, на пример, ВалуеЕррор: 'Елемент' није на листи.
Пример: Да бисте пронашли индекс датог елемента.
На листи ми_лист = ['А', 'Б', 'Ц', 'Д', 'Е', 'Ф'], желели бисмо да знамо индекс за елементе Ц и Ф.
Пример у наставку показује како се добија индекс.
my_list = ['A', 'B', 'C', 'D', 'E', 'F']print("The index of element C is ", my_list.index('C'))print("The index of element F is ", my_list.index('F'))
Излаз:
The index of element C is 2The index of element F is 5
Пример: Коришћење почетка и краја у индексу ()
У овом примеру ћемо покушати да ограничимо тражење индекса на листи користећи почетни и крајњи индекс.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('C', 1, 5))print("The index of element F is ", my_list.index('F', 3, 7))#using just the startindexprint("The index of element D is ", my_list.index('D', 1))
Излаз:
The index of element C is 2The index of element F is 5The index of element D is 3
Пример: Тестирање методе индек () са елементом који није присутан.
Када покушате да претражите индекс на листи за елемент који није присутан, добићете грешку као што је приказано доле:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Излаз:
Traceback (most recent call last):File "display.py", line 3, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Коришћење фор-лооп за добијање индекса елемента на листи
Код методе лист.индек () видели смо да даје индекс елемента који се прослеђује као аргумент.
Сада сматрајте листу као: ми_лист = ['Гуру', 'Сииа', 'Тииа', 'Гуру', 'Даксх', 'Рииа', 'Гуру']. Име 'Гуру' присутно је три пута у индексу, а ја желим да сви индекси буду са именом 'Гуру'.
Користећи фор-лооп требали бисмо бити у могућности да добијемо вишеструке индексе као што је приказано у доњем примеру.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']all_indexes = []for i in range(0, len(my_list)) :if my_list[i] == 'Guru' :all_indexes.append(i)print("Originallist ", my_list)print("Indexes for element Guru : ", all_indexes)
Излаз:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Коришћење вхиле-лооп и лист.индек ()
Коришћење вхиле петље вртиће се кроз наведену листу да би се добили сви индекси датог елемента.
На листи: ми_лист = ['Гуру', 'Сииа', 'Тииа', 'Гуру', 'Даксх', 'Рииа', 'Гуру'], требају нам сви индекси елемента 'Гуру'.
Испод је дат пример који показује како добити све индексе помоћу вхиле-петље
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("OriginalList is ", my_list)print("The index for element Guru is ", result)
Излаз:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Коришћење разумевања листе да би се добио индекс елемента на листи
Да бисте добили све индексе, брз и једноставан начин је коришћење разумевања листе на листи.
Разумевања пописа су Питхон функције које се користе за стварање нових секвенци (као што су листе, речници итд.), Тј. Помоћу секвенци које су већ креиране.
Они помажу у смањењу дужих петљи и олакшавају читање и одржавање вашег кода.
Следећи пример показује како се то ради:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']print("Indexes for element Guru : ", all_indexes)
Излаз:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Коришћење Енумерате да бисте добили индекс елемента на листи
Функција Енумерате () је уграђена функција доступна са питхон-ом. Можете користити енумерате да бисте добили све индексе елемента на листи. Улаз узима улазни објект (тј. Објекат који се може петљати), а излаз је објекат са бројачем сваке ставке.
Следећи пример показује како се користи енумерате на листи да се добију сви индекси за дати елемент.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Излаз:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Коришћење филтера за добијање индекса елемента на листи
Метода филтер () филтрира дату листу на основу дате функције. Сваки елемент листе проследиће се функцији, а потребни елементи филтрирати ће се на основу услова датог у функцији.
Искористимо методу филтер () да бисмо добили индексе за дати елемент на листи.
Следећи пример показује како се користи филтер на листи.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list))))print("Indexes for element Guru : ", all_indexes)
Излаз:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Коришћење НумПи за добијање индекса елемента на листи
НумПи библиотека се посебно користи за низове. Дакле, овде ћемо користити НумПи да добијемо индекс елемента који нам је потребан са дате листе.
Да бисмо користили НумПи, морамо га инсталирати и увести.
Ево корака за исто:
Корак 1) Инсталирајте НумПи
pip install numpy
Корак 2) Увезите НумПи модул.
import numpy as np
Корак 3) Користите нп.арраи за претварање листе у низ
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Корак 4) Набавите индекс жељеног елемента, користећи нп.вхере ()
item_index = np.where(np_array == 'Guru')[0]
Коначни радни код са излазом је следећи:
import numpy as npmy_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)item_index = np.where(np_array == 'Guru')[0]print("Originallist ", my_list)print("Indexes for element Guru :", item_index)
Излаз:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Коришћењем море_итертоолс.лоцате () за добијање индекса елемента на листи
Море_итертоолс.лоцате () помаже у проналажењу индекса елемента на листи. Овај модул ће радити са питхон верзијом 3.5+. Прво га треба инсталирати пакет море_итертоолс да бисте га искористили.
Следе кораци за инсталирање и коришћење море_итертоолс
Корак 1) Инсталирајте море_итертоолс помоћу пип-а (питхон манагер пакета). Команда је
pip install more_itertools
Корак 2) Када је инсталација завршена, увезите модул за проналажење као што је приказано испод
from more_itertools import locate
Сада можете користити модул лоцате на листи као што је приказано доле у примеру:
from more_itertools import locatemy_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist : ", my_list)print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Излаз:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Резиме:
- Метода лист индек () помаже вам да пронађете индекс датог елемента. Ово је најлакши и најједноставнији начин за добијање индекса.
- Метода лист индек () враћа индекс датог елемента.
- Ако елемент није присутан на листи, метода индек () бациће грешку, на пример, ВалуеЕррор: 'Елемент' није на листи.
- Поред уграђене методе листе, можете користити и друге начине за добијање индекса, попут прелиставања листе, коришћењем разумевања листе, коришћењем енумерате (), коришћењем филтера итд.
- Коришћење фор-лооп и вхиле-лооп за добијање вишеструких индекса датог елемента.
- Да бисте добили све индексе, брз и једноставан начин је коришћење разумевања листе на листи.
- Поимања пописа су Питхон функције које се користе за стварање нових секвенци.
- Они помажу у смањењу дужих петљи и олакшавају читање и одржавање вашег кода.
- Можете користити енумерате да бисте добили све индексе елемента на листи.
- Функција Енумерате () је уграђена функција доступна са питхон-ом. Улаз узима улазни објект (тј. Објекат који се може петљати), а излаз је објекат са бројачем сваке ставке.
- Метода филтер () филтрира дату листу на основу дате функције.
- Нумпи библиотека се посебно користи за низове. НумПи можете користити за добијање индекса елемента датог на листи.
- Море_итертоолс.лоцате () је још једна питхон библиотека која помаже у проналажењу индекса дате листе.