乐趣区

关于python:Python代码阅读第13篇检测列表中的元素是否都一样

Python 代码浏览合集介绍:为什么不举荐 Python 初学者间接看我的项目源码

本篇浏览的代码实现了检测列表中的元素是否都一样的逻辑。

本篇浏览的代码片段来自于 30-seconds-of-python。

all_equal

def all_equal(lst):
  return lst[1:] == lst[:-1]

# EXAMPLES
all_equal([1, 2, 3, 4, 5, 6]) # False
all_equal([1, 1, 1, 1]) # True

all_equal函数接管一个列表,并判断列表中的各个元素是否都一样,如果一样就返回 True 否则返回false

该函数采纳的判断形式比拟奇妙,将原列表去除第一个元素之后的子列表和原列表去除最初一个元素子列表进行比照。也就是原列表的元素进行了错位比拟,元素从头到尾顺次进行比拟。

[a[0], a[1], ... a[n-1]] == [a[1], a[2], ... a[n]]
a[0] == a[1], a[1] == a[2], ... a[n-1] == a[n]
a[0] == a[1] == a[2] ... a[n-1] == a[n]

列表切片

lst[1:]lst[:-1] 是列表切片的模式。lst[1:]示意从列表 lst 下标为 1 的元素开始始终到列表 lst 最初一个元素的子列表。lst[:-1]则是从第一个元素(下标为0)开始直至列表的倒数第二个元素。

一般而言列表切片的模式是 lst[a:b]ab代表了列表的索引。lst[a:b]返回的子列表从索引 a 开始,直到索引 b 的前一个元素进行。省略 a 或者 b 代表了“从头开始”或“直到列表结尾”。lst[:]会返回整个列表的切片。正数索引返回离列表开端相应间隔的元素,-1指的是列表最初一个元素。

退出移动版