比较python中的列表元素

时间:2014-03-19 01:52:49

标签: python list compare elements

我有一个列表,想要比较最后一个值是否大于过去的10个值,但是,我知道有一个更简单的方法来处理下面的代码:

list = [1,2,3,4,5,6,7,8,9,10]

if list[-1] > list[-2] and list[-1] > list[-3] and list[-1] > list[-4]:  (etc)
     print "It's bigger"

任何建议都将不胜感激!

2 个答案:

答案 0 :(得分:8)

一种方法是获取过去值的最大值并将其与最后一个值进行比较:

>>> l = [1,2,3,4,5,6,7,8,9,10]
>>> if l[-1] > max(l[:-1]):
...     print "It's bigger"
... 
It's bigger

答案 1 :(得分:4)

我们遍历列表,除了最后一个元素,我们检查所有这些元素是否小于最后一个元素。

print all(num < my_list[-1] for num in my_list[:-1])

在Python中,可以使用否定索引访问最后一个元素。因此my_list[-1]指的是最后一个元素,而my_list[-2]指的是最后一个元素,等等。

我们还使用slicing notationmy_list[:-1]中排除列表中的最后一个元素。

注意:此方法的优点是,它在发现故障后立即发生短路。因此,我们 始终不必处理整个列表 。在最好的情况下,它在处理第一个元素后返回。如果正在处理的列表非常大,这非常有用。

正如Ashwini Chaudhary在评论中指出的那样,这是实现这一目标的最佳方式

from itertools import islice
print all(num < my_list[-1] for num in islice(my_list, len(my_list) - 1))