python数组中元素是否相同判断的几种方式

有些时候我们需要判断一个数组中的所有元素是否全等,那么可以有以下多种方式,每个函数即为一种方式。

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:切记不要盲目使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值