检测列表中的所有元素是否相等(非原创)

搬砖,引用来源于检测列表中的所有元素是否相等
代码如下:

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]
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值