小编典典

通用方法:

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

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

  1. python 如何快速判断列表是否相同_python如何判断两个list是否相等

    python中的cmp() 方法用于比较两个列表的元素. cmp()方法语法cmp(list1, list2) 参数 list1 -- 比较的列表. list2 -- 比较的列表. 返回值 如果比较的 ...

  2. python判断整除_python – 检查列表中的哪些数字可以被某些数字整除?

    编写一个接收数字列表的函数 和术语列表,只返回可分割的元素 通过所有这些条款.您必须使用两个嵌套列表推导来解决它. divisible_numbers([12,11,10,9,8,7,6,5,4,3, ...

  3. python 列表算平均分_python平均列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我有一个列表:类似: data = , , , ] 我想把这个算出来... 本节 ...

  4. python编程快速上手第三章_Python编程快速上手 往让繁琐工作自动化-6.6 习题(示例代码)...

    Python编程快速上手 往让繁琐工作自动化-6.6 习题 1.什么是转义字符? 答:转义字符表示字符串中的一些字符,这些字符用别的方式很难在代码中打印出来. 2.转义字符\n和\t代表什么? 答:\ ...

  5. python列表功能默写_Python list(列表)功能详解

    Python List append()方法 描述 append() 方法用于在列表末尾添加新的对象. 语法 append()方法语法: list.append(obj) 参数 obj -- 添加到列 ...

  6. python查找列表重复项_python – 在列表中查找项目和重复项

    我正在使用 Python并考虑以下问题:给出一个列表,例如[1,0,-2,0,0,4,5,0,3]多次包含0的整数,我希望有这些0和每一个的索引是它出现在列表中的次数,直到出现不同的元素或列表结束. ...

  7. python列表添加字符串_python字符串,列表常用操作

    24天养成一个好习惯,第五天! 一.字符串需要掌握的操作 1.取值(索引取值)需要注意的是只能取,不能改 1 msg = 'hello world' 2 print(msg[4]) 2.切片(顾头不顾 ...

  8. python列表换行输出_Python从列表转换为字符串时处理换行符

    我有一个关于换行符和返回字符的问题.呃,这很难解释,但我会尽力的. 我有列表形式的数据.列表的成员中有换行符,因此. 1 2 3example_list = ["I've always lo ...

  9. python列表常用方法实践_Python 之列表的常用方法

    前言 方法是与对象(列表.数.字符串等)联系紧密的函数,调用方式为 object.method(arg),方法调用和函数调用很像.这里主要列举列表中常用的几个方法. 1.append append 用 ...

  10. 《Python编程快速上手——让繁琐工作自动化》——2.5 控制流的元素

    本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第2章,第2.5节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...

最新文章

  1. 北京哪儿有卖tods豆豆鞋的?在线等答案、、、、(类似动物园、西单等地)_百度知道...
  2. 如何写出安全的、基本功能完善的Bash脚本
  3. python合并两个属性_合并两个部分包含文件列表及其属性的最有效方法
  4. php nodelist,了解NodeList、HTMLCollection以及NamedNodeMap的使用(代码)
  5. 人生总是起起落落落落落落...
  6. gitHub上传项目
  7. PyTorch中的梯度微分机制
  8. libkyototycoon.so.2: cannot open shared object file: No such file
  9. 关于字符 字节 python3
  10. Multisim仿真:验证性实验-单管共射放大电路
  11. [大数据文章之其四] 概率数据结构简介
  12. 基于Impala的网易有数BI查询优化总结
  13. THINKPAD T14 Windows 10系统安装
  14. 拖拽即可创建HTML5网站的建站平台
  15. 十五: TranslateMessage(msg) 函数 和DispatchMessage(msg)函数
  16. 漏刻有时数据可视化Echarts组件开发(27):盒须图(箱线图)前后端php交互的实战案例
  17. 解码Base64并展示图片
  18. HDU 1495 非常可乐
  19. 2016-JavaScript之星
  20. Kaggle比赛如何开始

热门文章

  1. Git仓库初始化_企业级开发原则
  2. 第三篇:Spring Boot整合Servlet
  3. rsync 一条命令实现远程文件传输
  4. 前端_网页编程 WebAPI_01
  5. Java-自定义注解
  6. linux未知设备驱动程序,未知Android设备 - linux mint
  7. 什么是java枚举_什么是java枚举
  8. React之解决类中的this
  9. matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号
  10. mysql执行存储过程提示out of_PHP执行MYSQL存储过程报错:Commands out of sync; you can't run...