Можно ли как-то уместить несколько методов списка в одну строку?

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

def listFilter():
    intList.sort()
    intList.pop()
    intList.pop(0)

Могу ли я каким-либо образом сократить тело функции до одной строки и таким образом вообще искоренить функцию из моего кода и оставить просто эту строку?

я только начал учить Python, не обессудьте, пытаюсь сразу делать код как можно компактнее - приучать с детства, скажем так


Ответы (2 шт):

Автор решения: Vovin

Вы можете использовать для этой цели сторонний пакет fluentpy. _f оборачивает объект в Wrapper который для всех методов, возвращающих None, возвращает сам объект. ._ разворачивает объект обратно.

import fluentpy as _f

def filter_list(a_list: MutableSequence):
    return _f(a_list).sort().pop().pop(0)._
→ Ссылка
Автор решения: Dmitry

Попроще можно так

a = [3, 10, 1, 0, 456, 2]
a = sorted(a)[1:-1]    # вот ваше решение
print(a)

# OUT
# [1, 2, 3, 10]

выражение [1:-1] означает, взять срез от второго элемента (поскольку индексация начинается с 0) до последнего, не включая его.

→ Ссылка