有些时候我们需要判断一个数组中的所有元素是否全等,那么可以有以下多种方式,每个函数即为一种方式。
def check_all(lis: list):
return all(i == lis[0] for i in lis)
def check_count(lis: list):
return lis.count(lis[0]) == len(lis)
def check_set(lis: list):
return len(set(lis)) == 1
def check_and(lis: list):
# 这个说明一下, 这里是利用了逻辑运算符的一个技巧,
# 就是如果两个比较对象,如果前者为True,那么自动返回and后面的对象;
# 同理,如果前者为False,那就直接返回前者,and之后的就不会再被运算
return lis and [lis[0]] * len(lis) == lis
def check_slice(lis: list):
return lis[1:] == lis[:-1]
def check_map(lis: list):
return all(map(lambda x: x == lis[0], lis))
def check_repeat(lis: list):
from itertools import repeat
repeated = list(repeat(lis[0], len(lis)))
return repeated == lis
def check_group_by(lis: list):
from itertools import groupby
group = groupby(lis)
return len(list(group)) == 1
def check_counter(lis: list):
from collections import Counter
count = Counter(lis)
return len(count) == 1
上面基本上就是各种手段来判断一个数组中的所有元素是否完全相同的办法,但是需要提醒的是:这些代码针对的都是相对简单的数据结构元素内容,也就是下面这种数据类型:
t1 = [1, 1, 1, 1]
t2 = ["a", "b", "c"]
如果数组元素是 字典
这种复杂的对象,有些方式就不适用,需要自行灵活变化使用方式。Ps:切记不要盲目使用。