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.pswp.cn/news/534045.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534045.shtml
英文地址,請注明出處:http://en.pswp.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 本文版權歸原作者所有,如有侵權請立即與我聯系,我將及時處理。 背景: 我開發用的機器上邊會啟動幾個容器,就因為保潔阿姨碰了一下我的插排,我的機器被斷電關機了。 默認情況下…