«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Когда синтаксис понимания списка требует тернарного оператора в Python?

Когда синтаксис понимания списка требует тернарного оператора в Python?

Опубликовано 8 ноября 2024 г.
Просматривать:654

When Does List Comprehension Syntax Require a Ternary Operator in Python?

Загадка понимания списков: условная фильтрация в итерациях

В Python понимание списков предлагает краткий способ создания списков на основе существующих итераций. Однако возник вопрос относительно понимания списка с использованием оператора if.

Целью было сравнить две итерации, a и b, и напечатать только те элементы, которые появлялись в обеих. Предполагаемый код выглядел следующим образом:

print([y if y not in b for y in a])

К сожалению, этот код привел к синтаксической ошибке. Проблема заключается в порядке конструкции if-else. В Python условный оператор должен идти после цикла for в представлении списка, если только он не используется как тернарный оператор.

Правильный синтаксис:

[y for y in a if y not in b]

Этот код перебирает каждый элемент y в a. Если y не найден в b, он добавляется в список. Результирующий список будет содержать элементы, которые встречаются как в a, так и в b.

Альтернативный синтаксис тернарного оператора:

[y if y not in b else other_value for y in a]

Этот код использует тернарный оператор для указания альтернативного значения (other_value) в случае, если y не найден в b. Этот подход менее распространен и обычно используется, когда требуется значение по умолчанию.

Заявление о выпуске Эта статья перепечатана по адресу: 1729571541. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3