在 Python 中使用 for 循环检测列表中的最后一项

目录

Detect the last item in a list using a for loop in Python

  1. 在 Python 中使用 for 循环检测列表中的最后一项
  2. 检查当前索引是否等于上一个索引
  3. 检查我们是否在循环的最后一次迭代
  4. 不对列表中的最后一项执行操作
  5. 在最后一项之后没有分隔符加入

在 Python 中使用 for 循环检测列表中的最后一项

要使用循环检测列表中的最后一项for

  1. 使用该enumerate函数获取索引和项目的元组。
  2. 使用for循环遍历enumerate对象。
  3. 如果当前索引等于列表的长度减去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 ❌')
Python 索引是从零开始的,所以列表中的第一个索引是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().

main.py
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.

main.py
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: