За цикъл в Python
Заявление for цикъл в Python последователно повтаря над членовете на всеки обект, списък, низ и т.н. Въпреки че има начини да се направи поведението му същото като другите езици за програмиране (няма да бъде обхванато в тази статия). Можете също така да упражнявате известен контрол върху цикли, като използвате инструкции като continue, break, pass и т.н. По -долу е прост пример за for loop в Python:
захв диапазон(10):
печат(х)
Цикълът for по -горе ще отпечата десет числа, започващи от 0 и завършващи на 9.
Списък Разбирания
Разбирането на списъка не е нищо друго освен стенографски / сбит начин за писане на многоредови за цикли в еднолинейно изявление. Примерът за разбиране на списъка по -долу ще създаде нов списък като [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], като включи всички стойности на x в него.
числа= [хзахв диапазон(10)]
печат (числа)
Имайте предвид, че разбирането на списъка винаги създава нов списък и не променя оригиналните итерации, използвани в израза. Типичният израз за разбиране на списък трябва да има клауза for и може да бъде последван от условни изрази if и else. Без да се използва разбиране на списък, горният пример ще бъде написан по следния начин:
числа= []
захв диапазон(10):
числа.добавям(х)
печат (числа)
Производителност и четливост
Разбирането на списъци е по -бързо, отколкото при цикли. Въпреки това, освен ако не повтаряте стотици хиляди елементи, няма да забележите значителни подобрения в производителността. Докато разбирането на списъка осигурява кратък начин за писане за цикли, сложните изрази могат да доведат до лоша четливост на кода и увеличаване на подробността. Важно е кодът да се чете, освен ако постигането на максимална производителност не е абсолютна необходимост за вашата програма.
Пример: Използване на синтаксиса за разбиране на списъци с речници и набори
Речникът на python е колекция от елементи, дефинирани в двойки ключ-стойност, докато набор е колекция от уникални стойности, където дублиранията не са разрешени. Разбирането на списъци може да се използва и с речници и набори на Python. Синтаксисът се различава леко, вместо да увивате израза в квадратни скоби, сега ще трябва да използвате къдрави скоби. Освен това ще получите нов речник / зададен обект вместо нов списък.
данни= {'град':'Ню Йорк', 'име':'Джон Доу'}
formatted_data= {к: v.заглавие() зада се,vвданни.елементи()}
печат (formatted_data)
Примерът по -горе ще преобразува низните стойности в регистър на заглавието и ще създаде нов речник, наречен formatted_data, чийто изход ще бъде: {‘city’: ‘New York’, ‘name’: ‘John Doe’}. Можете също да промените речника / да го зададете на място, като посочите съществуващата речник на речника отляво.
данни= {'град':'Ню Йорк', 'име':'Джон Доу'}данни= {к: v.заглавие() зада се,vвданни.елементи()}
печат (данни)
Без използване на речникови разбирания, кодът ще изглежда така:
данни= {'град':'Ню Йорк', 'име':'Джон Доу'}formatted_data= {}
зада се,vвданни.елементи():
formatted_data[да се] =v.заглавие()
печат (formatted_data)
Тъй като няма двойки ключ-стойност в набори, разбирането на набор може да бъде определено по същия начин като разбирането на списък. Единствената разлика е използването на къдрави скоби.
Пример: Множество за цикли за разбиране на списък
Примерът за разбиране на списъка, споменат по -горе, е основен и използва единично за изявление. По -долу е даден пример, който използва множество за цикли и условен оператор if.
прилагателни= ['Диск', 'Eoan', „Фокално“, „Изкуствено“]животни= [„Динго“, 'Хермелин', 'Ямата', 'Бобър']
кодови имена= [x +''+ изахвприлагателнизаивживотниакои.започва с(х[0])]
печат (кодови имена)
Кодът ще показва [‘Disco Dingo’, ‘Eoan Ermine’, ‘Focal Fossa’] като изход. Двата цикъла for преминават през списъци с прилагателни и животни и членовете им се обединяват, като използват интервал, само ако първата буква на двете думи е еднаква. Без да се използват списъци, кодът ще изглежда така:
прилагателни= ['Диск', 'Eoan', „Фокално“, „Изкуствено“]животни= [„Динго“, 'Хермелин', 'Ямата', 'Бобър']
кодови имена= []
захвприлагателни:
заивживотни:
акои.започва с(х[0]):
кодови имена.добавям(x +''+ и)
печат (кодови имена)
Пример: Разбиране на списък с клауза if-else
Примерът по -долу ще покаже използването на if и else изрази в разбирането на списъка.
номер_ списък= [1, 2, 3, 4]another_list= [5, 6, 7, 8]
резултат= [Вярно ако (x + y)%2 == 0 иначе Фалшиво захвномер_ списъкзаивanother_list]
печат (резултат)
Докато преминава през два списъка, разбирането на списъка по -горе проверява дали сумата от двойката елементи е четна или не. Изпълнението на горния код ще ви покаже [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True] като изход. Без използване на разбиране на списъка, кодът ще изглежда така:
номер_ списък= [1, 2, 3, 4]another_list= [5, 6, 7, 8]
резултат= []
захвномер_ списък:
заивanother_list:
ако (x + y)%2 == 0:
резултат.добавям(Вярно)
иначе:
резултат.добавям(Фалшиво)
печат (резултат)
Заключение
Разбирането на списъци осигурява приятен начин за писане на ясни и кратки циклични изявления. Те обаче могат бързо да станат сложни и трудни за разбиране, ако се използват множество цикли и условни изрази. В крайна сметка се стига до нивото на комфорт на програмист, но като цяло е добра идея да се напише ясен, четим и лесен за отстраняване на грешки код, вместо да се използва прекомерно стенограми.