检查索引是否存在于 Python 列表中

在 Python 中检查列表中是否存在索引

Check if an index exists in a List in Python

检查列表中是否存在索引:

  1. 检查索引是否小于列表的长度。
  2. 如果满足条件,则该索引存在于列表中。
  3. 如果索引等于或大于列表的长度,则它不存在。
主程序
my_list = ['bobby', 'hadz', 'com'] index = 2 if index < len(my_list): # 👇️ this runs print('The index exists in the list', my_list[index]) else: print('The index does NOT exist in the list') print(2 < len(my_list)) # 👉️ True print(3 < len(my_list)) # 👉️ False

如果指定的索引小于列表的长度,则它存在。

如果列表的长度为3,则3列表中有元素。

如果列表中有3元素,则最后一个元素的索引为2

Python 索引是从零开始的,因此列表中的第一项的索引为,最后一项的索引为 0-1 len(my_list) - 1

由于索引是从零开始的,因此列表中的最后一项的索引始终为len(my_list) - 1.

如果索引小于列表的长度,则可以安全地访问指定索引处的列表。

这是一个处理索引可能为负的情况的示例。

主程序
my_list = ['bobby', 'hadz', 'com'] index = -30 if -len(my_list) <= index < len(my_list): print('The index exists in the list', my_list[index]) else: # 👇️ this runs print('The index does NOT exist in the list')

if语句检查列表的长度是否大于指定的索引。

我们还检查列表的否定长度是否小于或等于索引。

这对于处理负指数是必要的,例如-30.

如果列表的长度为3,则列表中最大的负索引为-3

In other words, the largest negative index in a list is equal to -len(my_list).

Negative indices can be used to count backward, e.g. my_list[-1] returns the
last item in the list and my_list[-2] returns the second to last item.

main.py
my_list = ['bobby', 'hadz', 'com'] print(my_list[-1]) # 👉️ com print(my_list[-2]) # 👉️ hadz print(my_list[-3]) # 👉️ bobby

If you need to get the Nth element in a list if it exists, without getting an
error, use a try/except statement.

main.py
def safe_list_access(li, index, default_value=None): try: return li[index] except IndexError: return default_value my_list = ['bobby', 'hadz', 'com'] print(safe_list_access(my_list, 0)) # 👉️ bobby print(safe_list_access(my_list, 30)) # 👉️ None print(safe_list_access(my_list, 30, 'default')) # 👉️ default

The function takes a list, an index and optionally a default value which is used
if the index is out of range.

In the try statement, we try to access the list at the specified index.

If the index is out of range, an IndexError is raised and the except block
runs.

main.py
my_list = ['bobby', 'hadz', 'com'] # ⛔️ IndexError: list index out of range print(my_list[30])

If the specified index doesn’t exist in the list, we return the default value.

默认值设置为,None除非用户在函数调用中提供第三个参数。

该函数返回列表的第 N 个元素(如果存在),否则返回默认值。