Как получить энный элемент списка Python или значения по умолчанию если не доступный

После устранения неполадок в течение всего дня это руководство очень помогло. 111 строка подключения, указанная в окне свойств после щелчка по моему серверу в проводнике сервера Sql.

Я хочу поблагодарить всех, кто не понижал голос и помогал, я действительно ценю это. Я отмечаю Marc_S как ответ, но хотел добавить это для всех, кто мог бы прочитать это.

128
задан Guy Avraham 22 July 2018 в 06:37
поделиться

5 ответов

l[index] if index < len(l) else default

Для поддержки отрицательных показателей мы можем использовать:

l[index] if -len(l) <= index < len(l) else default
110
ответ дан 24 November 2019 в 00:38
поделиться

Дешевое решение состоит в том, чтобы действительно сделать dict с, перечисляют и используют .get(), как обычно, как

 dict(enumerate(l)).get(7, my_default)
0
ответ дан 24 November 2019 в 00:38
поделиться
(a[n:]+[default])[0]

Это, вероятно, лучше, так как a становится больше

(a[n:n+1]+[default])[0]

Это работает, потому что если a[n:] является пустым списком, если n => len(a)

Вот пример того, как это работает с range(5)

>>> range(5)[3:4]
[3]
>>> range(5)[4:5]
[4]
>>> range(5)[5:6]
[]
>>> range(5)[6:7]
[]

И полное выражение

>>> (range(5)[3:4]+[999])[0]
3
>>> (range(5)[4:5]+[999])[0]
4
>>> (range(5)[5:6]+[999])[0]
999
>>> (range(5)[6:7]+[999])[0]
999
29
ответ дан 24 November 2019 в 00:38
поделиться
(L[n:n+1] or [somedefault])[0]
18
ответ дан 24 November 2019 в 00:38
поделиться
try:
   a = b[n]
except IndexError:
   a = default

Edit: Я удалил проверку на TypeError - возможно, лучше позволить вызывающему обработать это.

49
ответ дан 24 November 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: