python 如何快速判断列表是否相同_Python-检查列表中的所有元素是否相同

小编典典

通用方法:

def checkEqual1(iterator):

iterator = iter(iterator)

try:

first = next(iterator)

except StopIteration:

return True

return all(first == rest for rest in iterator)

单线:

def checkEqual2(iterator):

return len(set(iterator)) <= 1

也是单线的:

def checkEqual3(lst):

return lst[1:] == lst[:-1]

这三个版本之间的区别在于:

在checkEqual2内容中必须是可哈希的。

checkEqual1并且checkEqual2可以使用任何迭代器,但checkEqual3必须接受序列输入,通常是列表或元组之类的具体容器。

checkEqual1 发现差异后立即停止。

由于checkEqual1包含更多的Python代码,因此当许多项目在开始时相等时效率较低。

由于checkEqual2并checkEqual3始终执行O(N)复制操作,因此,如果你的大多数输入将返回False,它们将花费更长的时间。

对于checkEqual2,checkEqual3很难适应从a == b到的比较a is b。

timeit 结果,对于Python 2.7和(仅s1,s4,s7,s9应该返回True)

s1 = [1] * 5000

s2 = [1] * 4999 + [2]

s3 = [2] + [1]*4999

s4 = [set([9])] * 5000

s5 = [set([9])] * 4999 + [set([10])]

s6 = [set([10])] + [set([9])] * 4999

s7 = [1,1]

s8 = [1,2]

s9 = []

我们得到

| checkEqual1 | checkEqual2 | checkEqual3 | checkEqualIvo | checkEqual6502 |

|-----|-------------|-------------|--------------|---------------|----------------|

| s1 | 1.19 msec | 348 usec | 183 usec | 51.6 usec | 121 usec |

| s2 | 1.17 msec | 376 usec | 185 usec | 50.9 usec | 118 usec |

| s3 | 4.17 usec | 348 usec | 120 usec | 264 usec | 61.3 usec |

| | | | | | |

| s4 | 1.73 msec | | 182 usec | 50.5 usec | 121 usec |

| s5 | 1.71 msec | | 181 usec | 50.6 usec | 125 usec |

| s6 | 4.29 usec | | 122 usec | 423 usec | 61.1 usec |

| | | | | | |

| s7 | 3.1 usec | 1.4 usec | 1.24 usec | 0.932 usec | 1.92 usec |

| s8 | 4.07 usec | 1.54 usec | 1.28 usec | 0.997 usec | 1.79 usec |

| s9 | 5.91 usec | 1.25 usec | 0.749 usec | 0.407 usec | 0.386 usec |

注意:

# http://stackoverflow.com/q/3844948/

def checkEqualIvo(lst):

return not lst or lst.count(lst[0]) == len(lst)

# http://stackoverflow.com/q/3844931/

def checkEqual6502(lst):

return not lst or [lst[0]]*len(lst) == lst

2020-02-17

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机有什么著名基金经理排名,百万年薪的基金经理,都是什么专业出身?!...

有人会说了“小哔君你四不四撒&#xff01;基金经理肯定是金融专业出身的咯&#xff1f;不然嘞&#xff1f;”但事实的真相是许多基金经理都并非科班出身这要从基金经理的晋升机制说起了&#xff01;如下图基金经理都是从研究员做起的&#xff01;那么问题来了&#xff0c;如何…

遍历children_589. N叉树的前序遍历

589. N叉树的前序遍历给定一个 N 叉树&#xff0c;返回其节点值的前序遍历。例如&#xff0c;给定一个 3叉树 :返回其前序遍历: [1,3,5,6,2,4]。说明: 递归法很简单&#xff0c;你可以使用迭代法完成此题吗?题解&#xff1a;既然是树的遍历&#xff0c;那么一共就是两种思路&a…

计算机护理职称考试报名时间2015,护理职称考试怎么报名?

护理职称考试报名流程&#xff1a;网上预报名-现场确认-报名缴费。护理职称考试网上预报名及网上缴费均在中国卫生人才网&#xff0c;护理职称考试报名现场确认则按属地原则在单位或户籍所在地的卫计局。护理职称考试报名流程详解一、网上预报名考生需在规定的时间内登录中国卫…

怎么用python编程前二n-1项的等差数列的和_python 等差数列末项计算方式

等差数列末项计算 题目内容&#xff1a; 给出一个等差数列的前两项a1&#xff0c;a2&#xff0c;求第n项是多少 可以使用以下语句实现非负整数n的输入&#xff1a; nint(input()) 输入格式: 三行&#xff0c;包含三个整数a1&#xff0c;a2&#xff0c;n 输出格式&#xff1a; 一…

图纸中bs是什么意思_园建施工图中WL、BL、FL、TW、SL分别是什么意思

展开全部WL是水面标高来BL池底自标高FL地面标bai高TW墙顶标高SL 土面标高其他其他一些常du用的注解&#xff1a;PA种植区FF室内楼zhi地面标FG室外软景完成dao面标高BC路沿底标高BS踏步底标高BR栏杆扶手底标高TR栏杆扶手顶标高SL结构板顶标高扩展资料本书围绕园林工程建设主题&a…

计算机未显示移动硬盘,电脑不显示移动硬盘怎么办_移动硬盘已连接不显示解决教程...

最近有很多小伙伴咨询小编&#xff0c;电脑不显示移动硬盘怎么办&#xff0c;怎么设置才能恢复呢&#xff1f;其实操作内容很简单&#xff0c;尝试删除你的USB3.0可扩展主机控制器,再扫描硬件改动&#xff0c;今天就由小编来告诉你&#xff0c;移动硬盘已连接不显示的解决方法。…

八个角最多可以把平面分成多少部分?_一个空间最多能被分成几块?

相信大家在小学奥数中都遇到这样一个问题&#xff1a;4条直线最多能将平面分成几部分&#xff1f;这个问题并不能难倒我们&#xff0c;但是如果将问题改为&#xff1a;4个平面最多能将空间分为几部分&#xff1f;这下子我们可能就要放弃了。为了解决这个问题&#xff0c;今天我…

ios 不被遮挡 阴影_IOS开发之Bug--iOS7View被导航栏遮挡问题的解决

在实际开发中&#xff0c;遇到在UITextView的frame等于当前控制器的View的frame的情况下&#xff0c;然后运行的时候&#xff0c;发现控制器的Frame的高度y值会从导航条的位置64变化到0。导致UITextView的frame也跟着一起移动。这个问题本质其实就是iOS7View被导航栏遮挡问题&a…

破坏计算机信息系统功能罪,破坏计算机信息系统罪

破坏计算机信息系统罪2010年05月05日19:42法律咨询 我要评论一、概念&nbsp&nbsp&nbsp&nbsp破坏计算机信息系统罪(刑法第286条)&#xff0c;是指违反国家规定&#xff0c;对计算机信息系统功能或计算机信息系统中存储、处理或者传输的数据和应用程序进行破坏…

python解析html xml最好的模块_Python HTML/XML解析器BeautifulSoup(爬虫解析器)

The Dormouses storyOnce upon a time there were three little sisters; and their names were Elsie, Lacie and Tillie; and they lived at the bottom of a well....

ffmpeg运行在服务器上,FFMPEG安装在服务器上

我有一个在线服务器(共享主机方案)在Linux中&#xff0c;我不知道很多关于Linux的东西&#xff0c;我正在尝试安装ffmpeg。FFMPEG安装在服务器上当安装正在运行我得到这个消息&#xff0c;并停止安装...Installation of MPlayer-1.0rc1.tar.bz2 ....... started% Total % Recei…

python csv pandas_Python Pandas——Read_csv详解

目前最常用的数据保存格式可能就是CSV格式了&#xff0c;数据分析第一步就是获取数据&#xff0c;怎样读取数据至关重要。 本文将以pandas read_csv方法为例&#xff0c;详细介绍read_csv数据读取方法。再数据读取时进行数据预处理&#xff0c;这样不仅可以加快读取速度&#x…

python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧

前言最近 Python 之父 Guido van Rossum(龟爷)终于在 Python 官方邮件组落实了 Python 2.7 的终焉之日(EOL)。说的是 Python 2.7 的 EOL 日期最终确定为 2020 年 1 月 1 日&#xff0c;之后不会有任何更新&#xff0c;包括源码的安全补丁。所以兼容Python3已经可以说非常必要了…

nginx搭建文件服务器脚本,基于docker搭建nginx文件服务器的方法步骤

1.在本机新建配置文件docker_nginx.confserver {listen 7070;server_name localhost;charset utf-8;location /files {#在docker内nginx的目录alias /home/files;expires 1d;allow all;autoindex on;}2.启动命令docker run --name nginx -d -p 7070:7070 -v D:\dev\nginx-1.13.…

python运行不了指令_python不是内部命令或外部命令,也不是可执行程序解决方法...

简述 常见于新手初装python&#xff0c;然后忘记勾选设置环境变量(PATH)&#xff0c;或者没有重启&#xff0c;然后运行教程中的python命令时出现。 有两个解决方法&#xff1a;1.设置环境变量&#xff0c;然后重启。 2.新建命令。 如果你打算同时安装多个python版本&#xff0…

快手通过标签添加你什么意思_快快手粉丝数旁边的关注是什么意思手通过关注页添加是什么意思...

Aauto Speeter通过关注页面添加的内容意味着&#xff0c;如果你已经在关注遇到了其他人&#xff0c;并且他们对你感兴趣&#xff0c;他们将从这个关注页面添加关注&#xff0c;并成为你的粉丝。事实上&#xff0c;得到关注和粉丝并不是特别困难。如果主要发表的内容有意思&…

ovation系统服务器安装,Ovation系统介绍.ppt

Ovation系统介绍热控调试关于OVATION系统的一点简介;目录;Ovation系统的结构及硬件;典型的OVATION系统结构;Primary;网线插拔后需重启控制器&#xff0c;否则显示橙色&#xff0c;failmode报警;每扇门都有风扇;;I/0 子系统结构 ; I/O 模件; I/O 卡指示 ;模件种类减少&#xff0…

东京战纪服务器维护中,东京战纪7月21维护公告 当前测试进度介绍

东京战纪当前的测试进度已经有了很大的进步&#xff0c;接下来小编就跟大家一起看看测试期间对玩家给大家的报告吧。亲爱的喰种和CCG搜查官们7月19日中午12:00&#xff0c;我们怀着紧张又忐忑的心情开启了《东京战纪》官网限量删档技术测试。大家对《东京喰种》IP的热爱和对《东…

springboot能用python吗_Python与springboot的对接

使用springboot建立一个web demo ,其中有一个接口如下&#xff0c;为了测试加了一个参数 type: Autowired private JdbcTemplate jdbcTemplate; RequestMapping(value "/getCountry", method RequestMethod.GET) // ResponseBody public List> getUser(RequestB…

docker重启后容器消失_docker设置固定ip地址

代码来源:博客园 原文作者:雪之谷 原文链接:https://www.cnblogs.com/xuezhigu/p/8257129.html 本文版权归原作者所有,如有侵权请立即与我联系,我将及时处理。 背景: 我开发用的机器上边会启动几个容器,就因为保洁阿姨碰了一下我的插排,我的机器被断电关机了。 默认情况下…