识别列表是否具有相等的连续元素

识别列表是否具有相等的连续元素,第1张

识别列表是否具有相等的连续元素

您可以

itertools.groupby()
any()

*中使用和生成器表达式:

>>> from itertools import groupby>>> any(sum(1 for _ in g) > 1 for _, g in groupby(lst))True

或者,您可以使用

zip()
,以一种更Python化的方式来检查列表中是否至少有两个相等的连续项:

>>> any(i==j for i,j in zip(lst, lst[1:])) # In python-2.x,in order to avoid creating a 'list' of all pairs instead of an iterator use itertools.izip()True

注意:如果要检查是否有两个以上的连续相等项目,则第一种方法是好的,否则,在这种情况下,第二种方法会很容易做到!


*在内存使用方面,使用

sum(1 for _ in g)
而不是进行了
len(list(g))
非常优化(不立即读取内存中的整个列表),但是后者要快一些。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5652669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存