2015-02-11 4 views
0

Когда я перечисляю список, существует ли предполагаемый питонический способ получения последнего значения индекса?Pythonic способ получить последнее значение индекса перечисления

Что-то, что бы получить эквивалент этого:

highest = None 
for index, value in enumerate(long_list): 
    # do stuff with index and value 
    highest = index 
return highest 

Такой подход мне не нравится. Он содержит сотни ненужных переменных назначений. Кроме того, это уродливо.

Фон: У меня есть упорядоченная структура списка с RDBS и SQLAlchemy, используя числа как индексы в таблице отношений. Также я сохраняю наивысший используемый индекс в таблице списка, чтобы упростить добавление новых записей (без дополнительного макс-поиска по таблице отношений). Ибо, когда все портится, по какой-то причине я включил функцию реорганизации, которая перестраивает индексы начиная с 0 (чтобы удалить любые пробелы). Я к тому, что для-перечисления-итерации по таблице ассоциаций. После этого мне нужно подсчитать их или увеличить индекс, чтобы получить новое значение индекса для таблицы списка. Это меня беспокоит.

Предложения? Предпочтительно то, что работает в 2.7.

+4

последний индекс? что-то вроде 'len (long_list) - 1'? – njzk2

+0

'long_list [-1]' получает последний элемент в списке, 'len (long_list) - 1' получает последний индекс в списке –

+0

Вот что я делаю прямо сейчас. Но список, лежащий в основе этого, является чем-то более сложным, который действует как список python, так что он может пересчитать это значение более сложным образом. Просто чувствует себя не так, когда я просто делал это в цикле. – kratenko

ответ

2

Чтобы получить последний индекс списка

len(mylist)-1 

Чтобы получить последний элемент списка, Вы можете просто использовать отрицательный индекс.

mylist[-1] 
Смежные вопросы