在 Python 中检查列表中是否存在索引
Check if an index exists in a List in Python
检查列表中是否存在索引:
- 检查索引是否小于列表的长度。
- 如果满足条件,则该索引存在于列表中。
- 如果索引等于或大于列表的长度,则它不存在。
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
。
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
。
-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.
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.
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.
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 个元素(如果存在),否则返回默认值。