搬砖,引用来源于检测列表中的所有元素是否相等
代码如下:
def all_equal(lst):
return lst[1:] == lst[:-1]
print(all_equal([1, 2, 3, 4, 5, 6])) # False
print(all_equal([1, 1, 1, 1])) # True
原理:我们可以看到当x为一个列表时,lst[1:]的输出结果为第二个元素到最后一个元素,而lst[:-1]输出的结果为第一个元素到倒数第二个元素,因此lst[1:] == lst[:-1]表示循环比对第一个和第二个元素的值,第二个和第三个元素的值,以此类推,只有当所有值都一样的时候才会得到True的返回值。
lst = [1, 2, 3, 4, 5, 6]
print(lst[1:]) # [2, 3, 4, 5, 6]
print(lst[:-1]) # [1, 2, 3, 4, 5]
另外,lst[1:]之所以会输出第二个元素到最后一个元素,和lst[:-1]会输出第一个元素到倒数第二个元素的原因是可以将他们的index(索引值)看成一个range的循环,我们知道range循环并不包括右侧端点值,是一个半开半闭集合,类似于range函数左闭右开。
注意:只是可以这么理解,但是代码上并不能够将1:替换为range函数使用,会引发列表的索引不能够为列表的错误
代码如下:
print([i for i in range(1, 6)]) # [1, 2, 3, 4, 5]