Питхон

Користите функцију набрајања у Питхону да бисте креирали петље са бројачима

Користите функцију набрајања у Питхону да бисте креирали петље са бројачима

Овај чланак ће објаснити употребу функције „енумерате“ која је доступна у Питхоновој стандардној библиотеци модула. Функција енумерате омогућава вам да доделите индекс или бројање елементима у било којем итерабилном објекту. Тада на њима можете применити даљу логику јер ћете имати приступ обе вредности и броја који је на њу мапиран.

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

Ако сте користили петљу „фор“ у другим програмским језицима, посебно језику „Ц“ и другим језицима који имају синтаксу „Ц“ стила, можда сте навели почетни индекс у петљи. За референцу, ево како изгледа петља „фор“ у „Ц“ и другим језицима који имају сличну синтаксу:

за (инт и = 0; и < 10; i++)

принтф ("% д \ н", и);

Изјава петље иницијализује променљиву која има вредност нула, проверава да ли је мања од прага и увећава је за један број након процене логике унутар блока петље (ако је испуњен услов заустављања). На овај начин можете користити индекс и доделити га било којим објектима на које се позива ваш блок петље. У поређењу, ево како изгледа фор петља са истим резултатом у Питхону:

за и у опсегу (0, 10):
испис (и)

Функција „ранге“ у Питхону омогућава вам да одредите низ опсега бројева који има подразумевани корак 1. Вредност корака можете променити давањем трећег аргумента. Други аргумент у функцији „опсег“ користи се за постављање прага услова заустављања. Оба узорка кода дају следећи излаз:

0
1
2
3
4
5
6
7
8
9

Ове петље добро функционишу ако само желите да генеришете неку секвенцу бројева и повежете их са неком логиком унутар наредбе петље. Међутим, можда ћете морати користити другу угнијежђену петљу или користити функцију "ииелд" на било којем итерабилном типу да бисте им додијелили неку врсту броја који се може пратити. Метода „енумерате“ олакшава додељивање индекса итерабилима у једном изразу, чиме елиминише потребу за извођењем више угнежђених петљи. Погледајте овај узорак кода:

бројеви = ["нула", "један", "два", "три", "четири", "пет"]
енумератед_нумберс = енумерате (бројеви)
за индекс, ставка у енумератед_нумберс:
испис (индекс, ставка)

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

[(0, „нула“), (1, „један“), (2, „два“), (3, „три“), (4, „четири“), (5, „пет“)]

Функција „енумерате“ додељује бројање сваком елементу у итерабилном типу и креира корице са упареним вредностима. Подразумевано, бројање почиње од нуле.

Сад кад сте сваком елементу у итерабилном типу доделили број, лако можете да се пребаците преко њега без писања угнежђених израза:

бројеви = ["нула", "један", "два", "три", "четири", "пет"]
енумератед_нумберс = енумерате (бројеви)
за индекс, ставка у енумератед_нумберс:
испис (индекс, ставка)

Горе наведени узорак кода даће следећи излаз:

0 нула
1 један
2 два
3 три
4 четири
5 пет

Код можете скратити употребом функције „набрајање“ у реду, као што је приказано у доњем примеру:

бројеви = ["нула", "један", "два", "три", "четири", "пет"]
за индекс, ставка у набрајању (бројеви):
испис (индекс, ставка)

Коришћење Енумерате са различитим почетним индексом

Функција „енумерате“ узима необавезни аргумент где можете одредити почетни индекс. Подразумевано је нула, али можете је променити помоћу аргумента „старт“:

бројеви = ["један", "два", "три", "четири", "пет"]
за индекс, ставка у набрајању (бројеви, почетак = 1):
испис (индекс, ставка)

У другој изјави, аргумент „старт = 1“ се користи за промену почетне тачке. Након покретања горе наведеног узорка кода, требали бисте добити сљедећи излаз:

1 један
2 два
3 три
4 четири
5 пет

Додељивање индекса са корацима

У првом одељку овог чланка приказана је синтакса петље „фор“ на језику „Ц“ где можете дефинисати кораке између сваког следећег бројања или индекса. Функција „енумерате“ у Питхону нема доступан такав аргумент, тако да не можете одредити корак између бројања. Заиста можете написати властиту логику за имплементацију корака унутар набројаног блока петље „фор“. Међутим, постоји начин за примену прилагођених корака писањем минималног кода. Следећи пример приказује имплементацију корака помоћу функција „зип“ и „ранге“:

бројеви = ["нула", "два", "четири", "шест"]
за индекс, ставка у зип-у (опсег (0, 7, 2), бројеви):
испис (индекс, ставка)

Функција „зип“ омогућава вам да креирате парове бирањем елемената који имају исти индекс из два или више поновљивих елемената. Дакле, функција „зип“ овде преузима елемент из итерабилности враћене из функције „ранге (0, 7, 2)“ и још један елемент са листе „нумберс“, а затим их оба упарује у скуп. Крајњи резултат је идентична примена функције „енумерате“, али са прилагођеним корацима наведеним као трећи аргумент у функцији „ранге (0, 7, 2)“ (2 у овом случају). Након покретања горе наведеног узорка кода, требали бисте добити сљедећи излаз:

0 нула
2 два
4 четири
6 шест

Закључак

Функција „енумерате“ у Питхону омогућава вам писање сажетог кода додељивањем бројевне секвенце елементима у итерабилном објекту. Ово је заиста корисно ако желите да пратите индекс предмета унутар итерабилног типа. Ако желите да „набројите“ типове који се могу итерати прилагођеним корацима, користите функцију „зип“ објашњену у последњем примеру.

Најбоље игре командне линије за Линук
Командна линија није само ваш највећи савезник када користите Линук - она ​​такође може бити извор забаве јер је можете користити за играње многих заб...
Најбоље апликације за мапирање гамепада за Линук
Ако волите да играте игре на Линуку са гамепадом уместо са типичним системом за унос тастатуре и миша, за вас постоје неке корисне апликације. Многе и...
Корисни алати за Линук играче
Ако волите да играте игре на Линуку, велика је вероватноћа да сте можда користили апликације и услужне програме попут Вине, Лутрис и ОБС Студио за поб...