Выход из цикла for внутри метода python string join ()

python string for-loop join break

532 просмотра

1 ответ

Мой код:

maxlimit = 5
mystring = ' \r\n '.join([('' if (idx >= maxlimit) else str(name))
                         for idx,name in enumerate(queryset)])

Как я могу выйти из цикла for внутри join()метода if idx >= maxlimit?

Автор: Mojtaba Arvin Источник Размещён: 08.11.2019 11:04

Ответы (1)


3 плюса

Решение

Ну, ifвместо этого вы должны использовать условие в понимании списка:

mystring = ' \r\n '.join([str(name) for idx, name in enumerate(queryset) 
                          if idx < maxlimit])

Это генерирует список только из 5 предметов.

Но тогда легче просто ограничить количество элементов, с которыми нужно перебирать itertools.islice; или, если набор запросов (который я не знаю, что он поддерживает), поддерживает нарезку, то просто нарежьте его [:maxlimit]:

from itertools import islice
' \r\n '.join([str(name) for name in islice(queryset, maxlimit)])

Хотя для простого применения одной функции к каждому элементу я часто использую, mapпоскольку для этого требуется меньше набирать:

' \r\n '.join(map(str, islice(queryset, maxlimit)))
Автор: Antti Haapala Размещён: 20.08.2016 08:51
Вопросы из категории :
32x32