如何获取列表的最后一个元素?
我怎么才能获取列表中的最后一个元素?哪种方法更好呢?
alist[-1]
alist[len(alist) - 1]
相关问题:
26 个回答
134
你还可以这样做:
last_elem = alist.pop()
这要看你想对你的列表做什么,因为 pop() 这个方法会删除列表中的最后一个元素。
327
如果你的 str() 或 list() 对象可能会变成空的,比如 astr = '' 或 alist = [],那么你可能想用 alist[-1:] 来代替 alist[-1],这样可以保持对象的一致性。
这样做的意义在于:
alist = []
alist[-1] # will generate an IndexError exception whereas
alist[-1:] # will return an empty list
astr = ''
astr[-1] # will generate an IndexError exception whereas
astr[-1:] # will return an empty str
这里的区别在于,返回一个空列表或空字符串对象,更像是“最后一个元素”,而不是抛出一个异常。
3936
some_list[-1] 是获取列表最后一个元素的最简便、最符合Python风格的方法。
实际上,你可以用这种语法做更多的事情。some_list[-n] 这个写法可以获取倒数第n个元素。所以,some_list[-1] 是最后一个元素,some_list[-2] 是倒数第二个,以此类推,一直到 some_list[-len(some_list)],这会给你第一个元素。
你也可以用这种方式来设置列表中的元素。例如:
>>> some_list = [1, 2, 3]
>>> some_list[-1] = 5 # Set the last element
>>> some_list[-2] = 3 # Set the second to last element
>>> some_list
[1, 3, 5]
需要注意的是,如果你通过索引获取列表中的元素,而那个元素不存在,就会出现一个 IndexError 错误。这意味着如果 some_list 是空的,some_list[-1] 就会报错,因为空列表是没有最后一个元素的。