Используйте понимание списка с помощью if, else и цикла for, сохраняя при этом только те элементы списка, которые соотвеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Используйте понимание списка с помощью if, else и цикла for, сохраняя при этом только те элементы списка, которые соотве

Сообщение Anonymous »

Я использую понимание списка для загрузки только тех изображений из папки, которые соответствуют определенному условию.
В той же операции я также хотел бы отслеживать те изображения, которые не соответствуют условию. Вот здесь у меня и возникают проблемы.
Если условия if и else находятся в начале, каждая итерация дает результирующий элемент. Элементы, перехваченные else, заменяются на None, а не исключаются из списка результатов.
Я не могу понять, как добавить else условие, позволяющее выполнить операцию над элементами, пойманными else, не включая их в результирующий список.
вот упрощенная и обобщенная версия условия код:

Код: Выделить всё

exclude_imgs = [1, 3]
final = [
n
for ix, n in enumerate(sorted(["img1", "img4", "img3", "img5", "img2"]))
if ix + 1 not in exclude_imgs
]

Код: Выделить всё

[ins] In [4]: final
Out[4]: ['img2', 'img4', 'img5']
добавление условия else для сохранения исключенных изображений:

Код: Выделить всё

exclude_imgs = [1, 3]
excluded = []
final = [
n if ix + 1 not in exclude_imgs else excluded.append(n)
for ix, n in enumerate(sorted(["img1", "img4", "img3", "img5", "img2"]))
]

Код: Выделить всё

[ins] In [6]: final
Out[6]: [None, 'img2', None, 'img4', 'img5']

[ins] In [7]: excluded
Out[7]: ['img1', 'img3']
Как мне это написать, чтобы результаты были следующими:

Код: Выделить всё

final: ['img2', 'img4', 'img5']
excluded: ['img1', 'img3']
?

Подробнее здесь: https://stackoverflow.com/questions/787 ... list-items
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»