目录
Detect the last item in a list using a for loop in Python
在 Python 中使用 for 循环检测列表中的最后一项
要使用循环检测列表中的最后一项for
:
- 使用该
enumerate
函数获取索引和项目的元组。 - 使用
for
循环遍历enumerate
对象。 - 如果当前索引等于列表的长度减去
1
,则它是列表中的最后一项。
my_list = ['one', 'two', 'three', 'four'] for index, item in enumerate(my_list): if index != len(my_list) - 1: print(item, 'is NOT last in the list ✅') else: print(item, 'is last in the list ❌')
我们使用该enumerate()
函数来获取enumerate
可以迭代的对象。
enumerate函数接受一个可迭代对象并返回一个包含元组的枚举对象,其中第一个元素是索引,第二个元素是项目。
my_list = ['one', 'two', 'three', 'four'] # 👇️ [(0, 'one'), (1, 'two'), (2, 'three'), (3, 'four')] print(list(enumerate(my_list)))
我们使用for
循环遍历enumerate
对象,在每次迭代中,我们检查当前索引是否不等于列表中的最后一个索引。
检查当前索引是否等于上一个索引
如果当前索引不等于列表中的最后一个索引,则该元素不是最后一个列表项。
my_list = ['one', 'two', 'three', 'four'] for index, item in enumerate(my_list): if index != len(my_list) - 1: print(item, 'is NOT last in the list ✅') else: print(item, 'is last in the list ❌')
0
,最后一个索引是len(my_list) - 1
。检查我们是否在循环的最后一次迭代
如果您需要检查元素是否是最后一个列表项,请将不等于 (!=) 运算符更改为等于 (==) 运算符。
my_list = ['one', 'two', 'three', 'four'] for index, item in enumerate(my_list): if index == len(my_list) - 1: print(item, 'is last in the list ✅') else: print(item, 'is NOT last in the list ❌')
该示例检查当前索引是否等于列表中的最后一个索引。
不对列表中的最后一项执行操作
如果您不想对列表中的最后一项执行操作,请使用排除它的列表切片。
my_list = ['one', 'two', 'three', 'four'] for item in my_list[:-1]: print(item, 'is NOT last in the list ✅') print(my_list[-1], 'is last in the list ❌')
该my_list[:-1]
语法返回排除最后一个元素的列表的一部分。
列表切片的语法是
my_list[start:stop:step]
.
0
,一直到但不包括列表中的最后一项。负索引可用于向后计数,例如my_list[-1]
返回列表中的最后一项并my_list[-2]
返回倒数第二项。
在最后一项之后没有分隔符加入
如果您需要使用字符串分隔符连接列表中的项目,但不想在最后一个元素之后添加分隔符,请使用该方法str.join()
。
my_list = ['one', 'two', 'three', 'four'] result_1 = '_'.join(my_list) print(result_1) # 👉️ 'one_two_three_four' result_2 = ' '.join(my_list) print(result_2) # 👉️ 'one two three four'
str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
TypeError
请注意,如果可迭代对象中有任何非字符串值,该方法将引发 a 。If your list contains numbers or other types, convert all of the values to
string before calling join()
.
my_list = ['one', 1, 'two', 2, 'three', 3] list_of_strings = list(map(str, my_list)) result_1 = '_'.join(list_of_strings) print(result_1) # 👉️ 'one_1_two_2_three_3' result_2 = ' '.join(list_of_strings) print(result_2) # 👉️ 'one 1 two 2 three 3'
The string the method is called on is used as the separator between the
elements.
If you don’t need a separator and just want to join the iterable’s elements into
a string, call the join()
method on an empty string.
my_list = ['one', 'two', 'three'] result_1 = ''.join(my_list) print(result_1) # 👉️ 'onetwothree'
# Additional Resources
You can learn more about the related topics by checking out the following
tutorials: