Python

Използвайте функцията за изброяване в Python, за да създавате цикли с броячи

Използвайте функцията за изброяване в Python, за да създавате цикли с броячи

Тази статия ще обясни използването на функцията “enumerate”, налична в стандартната библиотека на модули на Python. Функцията за изброяване ви позволява да присвоите „индекс“ или „брой“ на елементи във всеки обект, който може да се итерира. След това можете да приложите по-нататъшна логика върху тях, тъй като ще имате достъп до двете стойности и броя, съпоставен с тях.

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

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

за (int i = 0; i < 10; i++)

printf ("% d \ n", i);

Операторът цикъл инициализира променлива със стойност нула, проверява дали тя е по-малка от праг и я увеличава с един брой след оценка на логиката вътре в блоковия цикъл (ако е изпълнено условието за спиране). По този начин можете да използвате индекс и да го присвоите на всички обекти, посочени във вашия циклов блок. За сравнение, ето как изглежда цикъл for със същия резултат в Python:

за i в обхват (0, 10):
печат (i)

Функцията “range” в Python ви позволява да зададете последователност от диапазони от числа, която има стъпка по подразбиране 1. Можете да промените стойността на стъпката, като предоставите трети аргумент. Вторият аргумент във функцията “range” се използва за задаване на прага за състояние на спиране. И двете примерни кодове дават следния изход:

0
1
2
3
4
5
6
7
8
9

Тези цикли работят добре, ако просто искате да генерирате някаква последователност от числа и да ги свържете с някаква логика вътре в оператора на цикъла. Може обаче да се наложи да използвате друг вложен цикъл или да използвате функцията “yield” за всеки итерабилен тип, за да им присвоите някакъв проследяващ се брой. Методът „enumerate“ улеснява присвояването на индекси на итерабилите в един оператор, като по този начин елиминира необходимостта от изпълнение на множество вложени цикли. Погледнете този пример за код:

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

Първият оператор дефинира нова променлива, наречена „числа“, и й присвоява итерируем (тип списък). Второто изявление показва използването на функцията “enumerate”, където вие предоставяте итерация към нея като задължителен аргумент. Третият оператор преобразува променливата “enumerated_numbers” в обект от тип списък. По подразбиране функцията “enumerate” генерира тип “enumerate” тип, а не итеративен тип, така че трябва да го конвертирате. След като стартирате кодовата проба, спомената по-горе, трябва да получите следния изход:

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

Функцията “enumerate” присвоява броя на всеки елемент в итеративен тип и създава кортежи, имащи сдвоени стойности. По подразбиране броят започва от нула.

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

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

Примерът на кода, посочен по-горе, ще даде следния изход:

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

Можете да направите кода по-кратък, като използвате функцията “enumerate” вградена, както е показано в примерната по-долу:

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

Използване на Enumerate с различен начален индекс

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

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

Във второто твърдение се използва аргумент “start = 1” за промяна на началната точка. След като стартирате примера на кода, посочен по-горе, трябва да получите следния изход:

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

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

В първия раздел на тази статия е показан синтаксис за цикъл „за“ на език „С“, където можете да дефинирате стъпки между всеки следващ брой или индекс. Функцията “enumerate” в Python не разполага с такъв аргумент, така че не можете да посочите стъпка между броя. Наистина можете да напишете своя собствена логика, за да приложите стъпки в изброения блок „for“. Има обаче начин да внедрите персонализирани стъпки, като напишете минимален код. Следващият пример показва изпълнение на стъпки, използващи функции „zip“ и „range“:

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

Функцията “zip” ви позволява да създавате двойки, като избирате елементи с един и същ индекс от две или повече итерации. Така че функцията "zip" тук взима елемент от итерацията, върната от функцията "range (0, 7, 2)" и друг елемент от списъка "numbers" и след това ги сдвоява и в една купчина. Крайният резултат е идентично изпълнение на функцията „изброяване“, но с персонализирани стъпки, посочени като трети аргумент във функцията „диапазон (0, 7, 2)“ (2 в случая). След като стартирате кодовата проба, посочена по-горе, трябва да получите следния изход:

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

Заключение

Функцията “enumerate” в Python ви позволява да пишете кратък код, като присвоявате последователност от числа на елементи в итерируем обект. Това е наистина полезно, ако искате да следите индекса на елементи в итеративен тип. Ако искате да „изброите“ итерационни типове с персонализирани стъпки, използвайте функцията „zip“, обяснена в последния пример.

Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...
Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...