Ежедневное программирование-контент (37 серии деталей)
Понимание List/Dictionary-это элегантный одну строку, чтобы итерация через список/словарь. Они позволяют нам создавать новые объекты на основе уже существующих.
Синтаксис как для списка, так и для понимания словаря довольно похожи, и хотя я буду обсуждать оба, я использую понимание списка, чтобы поговорить о понимании гнезда и условном понимании.
«Нормальный» способ итерации над списком, использующим для петли
Давайте предположим, что у нас есть список чисел, и мы хотим создать новый список, в котором хранятся квадраты чисел. Вот как мы делаем это с помощью петли
Понимание списка
Используя понимание списка, мы могли бы написать строки 2-4 в одной строке.
Как видите, это выглядит намного чище и элегантно.
Словарь понимание
Давайте предположим, что мы хотим создать словарь, который хранит индекс в качестве ключа и значение в этом индексе в качестве значения.
Понимание списка с Если условие
Допустим, мы хотим хранить квадрат числа, только если это четное число. Мы можем просто добавить оператор IF после итерационного
Список понимания с условием if/else.
Теперь предположим, что мы хотим хранить квадраты ровных чисел и кубики нечетных чисел.
Синтаксис немного отличается по сравнению с пониманием списка с оператором if.
Вложенное понимание списка
У нас может быть внешняя петля с внутренней частью петли.
Первый для Loop был бы внешним для петли, а второй для Loop будет внутренним для Loop. Выражение (i, j) будет оценивать (0,0), (0,1), (0,2) …. так как j находится во внутреннем петле.
Несколько советов
- Не чрезмерно использование списка/словарного понимания. Это одностроитель по причине. Хотя это делает ваш код чистым, убедитесь, что он читается и может быть понят другими разработчиками
- Понимание списка не звонит в Приложение во время каждой итерации, и в целом они быстрее, чем для петли. Однако, если вы используете сложную функцию внутри вашего понимания списка, это повлияет на производительность.
Ежедневное программирование-контент (37 серии деталей)
Оригинал: “https://dev.to/rahulbanerjee99/day2-list-dictionary-comprehension-in-python-1lbp”