Змея / Говнокод #11905 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
threadList = sorted(
    [
        (contr, contragents[contr])
        for contr in contragents
        if dateStart <= contragents[contr]["ts"] <= dateEnd and
            (lambda x: 1 if x else 0)(contragents[contr]["status"]) in status
    ],
    key=lambda sorted: sorted[1]["ts"], reverse=True
)[loaded:loaded + 50]

Тащемта, такой однострочник с коллегос сделали. Вроде бы и не говнокод, но что-то такое есть.

Запостил: Miketsukami Miketsukami, (Updated )

Комментарии (5) RSS

  • (contr, contragents[contr])
    for contr in contragents

    contragents - это нормальный dict или имитация? Если dict, то можно использовать dict.iteritems() для итерации по парам ключ-значение и filter для построения фильтрованного списка. Я бы все же разбил построение, сортировку и взятие диапазона на отдельные операции, но раз уж хочется одной строкой...
    threadList = sorted(
        filter(
            lambda contragent: (dateStart <= contragent["ts"] <= dateEnd) and
                int(bool(contragents[contr]["status"])) in status,
            contragents.iteritems() 
            ),
        key=lambda sorted: sorted[1]["ts"], reverse=True
    )[loaded:loaded + 50]
    Ответить
    • Я бы еще подумал над status - может, стоит вставить туда True и False, а не 0 и 1?
      Но это уже за рамками данного кода.
      Ответить
    • Да, про iteritems не подумали даже. И про filter не вспомнили, поскольку его даже сам Гвидо недолюбливает.
      Ответить
  • Астрологи обьявили неделю питона на ГК?
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8