27

Как получить последний элемент списка?

19

Заголовок: Как получить последний элемент списка в Python и какой способ предпочтительнее?

Описание проблемы:

Я пытаюсь получить последний элемент списка в Python и столкнулся с вопросом: какой способ лучше использовать? Я нашел два подхода:

  1. Использовать отрицательный индекс: alist[-1]
  2. Использовать длину списка: alist[len(alist) - 1]

Какой из этих способов является более предпочтительным с точки зрения читаемости и производительности? Есть ли рекомендации по использованию одного подхода над другим в зависимости от ситуации?

4 ответ(ов)

3

Если ваши объекты str() или list() могут оказаться пустыми, например, astr = '' или alist = [], то вам стоит использовать alist[-1:] вместо alist[-1] для обеспечения "сходства" объектов.

Значимость этого заключается в следующем:

alist = []
alist[-1]   # вызовет исключение IndexError, в то время как
alist[-1:]  # вернет пустой список
astr = ''
astr[-1]    # вызовет исключение IndexError, в то время как
astr[-1:]   # вернет пустую строку

Разница заключается в том, что возврат пустого списка или пустой строки более соответствует концепции последнего элемента, чем генерация исключения.

1

Вы также можете сделать так:

last_elem = alist.pop()

Это зависит от того, что вы хотите сделать со своим списком, потому что метод pop() удалит последний элемент.

0

Самый простой способ получить последний элемент в Python:

>>> my_list[-1:]  # возвращает список с индексированным значением
    [3]
>>> my_list[-1]   # возвращает значение
    3

Существует множество других способов достижения этой цели, но эти варианты короткие и удобные в использовании.

0

Вот решение для вашего запроса.

a = ["first", "second", "second from last", "last"]  # Пример списка
print(a[0])      # Выводит первый элемент списка, так как индексация в списке начинается с 0.
print(a[1])      # Выводит второй элемент списка.
print(a[-1])     # Выводит последний элемент списка.
print(a[-2])     # Выводит предпоследний элемент списка.

Вывод:

>>> first
>>> second
>>> last
>>> second from last
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь