python判斷一個數為素數,Python中真的是能使用元組的地方盡量不使用列表嗎?

 2023-10-04 阅读 28 评论 0

摘要:推薦圖書: python判斷一個數為素數,《Python程序設計(第3版)》,(ISBN:978-7-302-55083-9),董付國,清華大學出版社,2020年6月第1次印刷,2021年1月第6次印刷,山東省一流本科課程“Python

推薦圖書:

python判斷一個數為素數,《Python程序設計(第3版)》,(ISBN:978-7-302-55083-9),董付國,清華大學出版社,2020年6月第1次印刷,2021年1月第6次印刷,山東省一流本科課程“Python應用開發”配套教材,清華大學出版社2020年度暢銷圖書(本書第二版為2019、2020年度暢銷圖書)

圖片

Python中的元組和列表的區別、京東購買鏈接:https://item.jd.com/12668739.html

圖片

天貓、當當均有銷售,可以選擇自己常用平臺搜索“董付國 第3版”找到本書。

配套資源:教學大綱、電子教案、微課視頻、PPT課件、例題源碼、習題答案、考試系統。

適用專業:計算機、網絡工程、軟件工程以及相關專業。

適用學時:>=64

頁數:381

定價:59.8

微課視頻:77個

教學大綱:《Python程序設計(第3版)》配套教學大綱

習題答案:《Python程序設計(第3版)》課后習題答案

在Python語言中,元組是不可變的(或者說可哈希),列表是可變的(或者說不可哈希),很多資料上有“元組的效率比列表高,能使用元組的地方不要使用列表”這樣的說法,這個說法對于Python 2.x低版本是成立的,那么是否適用于Python 3.x呢?很多人延續了Python 2.x對元組和列表的描述和認識,是否還準確呢?

下面的代碼運行版本為Python 3.8.9,運行環境為IDLE。

1)元組占用的內存空間略小

圖片

元組創建之后不允許改變元素的數量和引用,而列表在增加元素和刪除元素時,會動態擴展和縮小所占內存空間,這確實會帶來額外的開銷。

圖片

?

圖片

2)元組對象的引用次數減少為0時,對應的內存空間不會立即釋放,而是會進行緩存,元組被刪除之后對應的內存空間會被保留一段時間,再次創建同樣大小的元組時會盡量使用已緩存的內存空間,這可以在一定程序上避免反復申請和釋放內存帶來的時間開銷。

圖片

?

3)元組是不可變的,可以作為集合的元素和字典的“鍵”,不支持列表對象所具有的append()、clear()、extend()、insert()、pop()、remove()、reverse()、sort()等對自身進行修改的方法,也不支持關鍵字del刪除元組中的元素。任何試圖修改元素個數或元素引用的操作都會引發異常,作為參數傳遞給第三方開發的函數時元組更加安全,不會在被調函數中有意或無意地修改導致主調函數中的實參被修改。

圖片

?

4)速度問題。很多資料上都會說元組比列表快,因為元組的內部實現更簡單一些,那么實際情況是怎樣的呢?

圖片

?

在進行解包操作時,元組比列表略快,但是有限到幾乎可以忽略。

圖片

?

再來看一下使用for循環遍歷元組和列表時的速度,元組略快,但也沒有明顯的優勢。

圖片

?

最后附上32位Python 2.7.11環境中元組與列表性能比較的結果,元組除占用內存空間略小之外,其他操作也并沒有表現出很大的優勢。

圖片

?

溫馨提示:

關注微信公眾號“Python小屋”,在公眾號后臺發送消息“大事記”可以查看董付國老師與Python有關的重要事件;發送消息“教材”可以查看董付國老師出版的Python系列教材(累計印刷超過120次)的適用專業詳情;發送消息“歷史文章”可以查看董付國老師推送的超過1000篇原創技術文章;發送消息“會議”或“培訓”可以查看近期董付國老師的培訓安排;發送消息“微課”可以查看董付國老師免費分享的超過500節Python微課視頻;發送消息“課件”可以查看董付國老師免費分享的Python教學資源;發送消息“小屋刷題”可以下載“Python小屋刷題神器”,免費練習1363道客觀題和260道編程題,題庫持續更新;發送消息“編程比賽”了解Python小屋編程大賽詳情。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/112240.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息