2

例如,我有一个列表:list_a = [0,1,3,1]

我正在尝试遍历此循环中的每个数字,如果它命中列表中的最后一个“1”,则打印“这是列表中的最后一个数字”

由于有两个 1,有什么方法可以访问列表中的最后一个 1?

我试过了:

 if list_a[-1] == 1:
      print "this is the last"  
   else:
     # not the last

这不起作用,因为第二个元素也是 1。尝试:

if list_a.index(3) == list_a[i] is True:
   print "this is the last"

也没有工作,因为有两个1

4

5 回答 5

15

list_a[-1]是访问最后一个元素的方式

于 2013-03-15T19:38:31.007 回答
7

您可以使用enumerate来遍历列表中的项目以及这些项目的索引。

for idx, item in enumerate(list_a):
    if idx == len(list_a) - 1:
        print item, "is the last"
    else:
        print item, "is not the last"

结果:

0 is not the last
1 is not the last
3 is not the last
1 is the last
于 2013-03-15T19:39:53.610 回答
2

在 Python 2.7.3 上测试

此解决方案适用于任何大小的列表。

list_a = [0,1,3,1]

^ 我们定义list_a

last = (len(list_a) - 1)

^我们计算列表中元素的数量并减1。这是最后一个元素的坐标。

print "The last variable in this list is", list_a[last]

^我们显示信息。

于 2013-03-15T19:43:16.187 回答
0

为确保您找到“1”的最后一个实例,您必须查看列表中的所有项目。最后一个“1”有可能不是列表中的最后一项。所以,你必须浏览列表,记住最后找到的索引,然后你可以使用这个索引。

list_a = [2, 1, 3, 4, 1, 5, 6]

lastIndex = 0

for index, item in enumerate(list_a):
    if item == 1:
        lastIndex = index

print lastIndex

输出:

4
于 2013-03-15T20:59:34.323 回答
0
a = [1, 2, 3, 4, 1, 'not a number']
index_of_last_number = 0

for index, item in enumerate(a):
    if type(item) == type(2):
        index_of_last_number = index

输出为 4,即数组 a 中最后一个整数的索引。如果要包含整数以外的类型,可以将 type(2) 更改为 type(2.2) 或其他内容。

于 2013-03-15T20:00:43.400 回答