Effective Python:(10)

Effective Python提供90條新穎的Python3編程技巧,可以讓我們寫程序更加靈活,代碼更加整潔而易于維護,這對于商業化系統代碼的重要性不言而喻。

前面兩條主要介紹切片的實用好玩的用法,這一條里反而建議不用切片,這是什么場景呢?這個場景其實也很常見,就是從一個元組中取出位于起始或結束位置的其中某幾項,這樣的場景其實很常見,我們最容易想到的方法就是切片,通過切片把需要的部分切出來,然后通過下標進行索引訪問數組元素。

但是這樣寫起來有些繁瑣,程序不是很簡潔清晰,所以作者推薦了用帶星號的unpacking方法,也就是帶通配符的拆分,直接一步到位搞定。unpacking我們介紹的之前的條目中有講解,可以把一個元組通過unpacking操作直接拆解成多個變量,直接使用,免去數組下標的索引的麻煩,但這個unpacking有個限制,就是必須要求拆分的變量數目和順序必須和元組元素數量相同。

用帶星號的unpacking,可以把需要取出的元素用普通變量列出,其余用一個帶星號變量列出,用來表示其余所有元素,而不用關心有多少個。這樣代碼就整潔清晰多了,對于維護修改又不必關心數組長度或者其他元素是否被改動過,從而避免了不必要的邏輯錯誤的出現。

另外需要再說明下帶星號的拆分要注意的兩點:一個是拆分出來的必須要有普通變量,不能只有一個帶星變量,這樣會報錯,另外第二個就是不能同時包括兩個帶星變量,這樣會導致系統搞不清楚要定位到哪里。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67476.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高效學習方法分享

高效學習方法分享 引言 在信息高速發展的今天,學習已經成為每個人不可或缺的一部分。你是否曾感到學習的疲憊,信息的爆炸讓你無從下手?今天,我們將探討幾種高效的學習方法,幫助你從中找到適合自己的學習之道。關于學…

數據庫備份、主從、集群等配置

數據庫備份、主從、集群等配置 1 MySQL1.1 docker安裝MySQL1.2 主從復制1.2.1 主節點配置1.2.2 從節點配置1.2.3 創建用于主從同步的用戶1.2.4 開啟主從同步1.2.4 主從同步驗證 1.3 主從切換1.3.1 主節點設置只讀(在192.168.1.151上操作)1.3.2 檢查主從數…

代碼隨想錄_棧與隊列

棧與隊列 232.用棧實現隊列 232. 用棧實現隊列 使用棧實現隊列的下列操作: push(x) – 將一個元素放入隊列的尾部。 pop() – 從隊列首部移除元素。 peek() – 返回隊列首部的元素。 empty() – 返回隊列是否為空。 思路: 定義兩個棧: 入隊棧, 出隊棧, 控制出入…

AJAX綜合案例——圖書管理

黑馬程序員視頻地址: AJAX-Day02-10.案例_圖書管理AJAX-Day02-10.案例_圖書管理_總結_V1.0是黑馬程序員前端AJAX入門到實戰全套教程,包含學前端框架必會的(ajaxnode.jswebpackgit),一套全覆蓋的第25集視頻&#xff0c…

【編譯原理實驗二】——自動機實驗:NFA轉DFA并最小化

本篇適用于ZZU的編譯原理課程實驗二——自動機實驗:NFA轉DFA并最小化,包含了實驗代碼和實驗報告的內容,讀者可根據需要參考完成自己的程序設計。 如果是ZZU的學弟學妹看到這篇,那么恭喜你,你來對地方啦! 如…

【redis進階】分布式鎖

目錄 一、什么是分布式鎖 二、分布式鎖的基礎實現 三、引入過期時間 四、引入校驗 id 五、引入lua 六、引入 watch dog (看門狗) 七、引入 Redlock 算法 八、其他功能 redis學習🥳 一、什么是分布式鎖 在一個分布式的系統中,也會涉及到多個節點訪問同一…

wordpress每隔24小時 隨機推薦一個指定分類下的置頂內容。

在WordPress中實現每隔24小時隨機推薦一個指定分類下的置頂內容,可以通過以下步驟實現: 1. 創建自定義函數 在主題的functions.php文件中添加以下代碼,用于創建一個定時任務,每隔24小時隨機選擇一個置頂文章并存儲到選項中&…

Blazor-@bind

數據綁定 帶有 value屬性的標記都可以使用bind 綁定&#xff0c;<div>、<span>等非輸入標記&#xff0c;無法使用bind 指令的&#xff0c;默認綁定了 onchange 事件&#xff0c;onchange 事件是指在輸入框中輸入內容之后&#xff0c;當失去焦點時執行。 page &qu…

RK3568 opencv播放視頻

文章目錄 一、opencv相關視頻播放類1. cv::VideoCapture 類主要構造方法&#xff1a;主要方法&#xff1a; 2. 視頻播放基本流程代碼示例&#xff1a; 3. 獲取和設置視頻屬性4. 結合 FFmpeg 使用5. OpenCV 視頻播放的局限性6. 結合 Qt 實現更高級的視頻播放總結 二、QT中的代碼…

pytorch邏輯回歸實現垃圾郵件檢測

完整代碼&#xff1a; import torch import torch.nn as nn import torch.optim as optim from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import numpy as…

【 CVE-2025-21298】 通過ghidriff查看完整補丁差異

ole32_dec24.dll-ole32.dll 差異 目錄 視覺圖表差異元數據 Ghidra 差異引擎 命令行二進制元數據差異程序選項

洛谷P3383 【模板】線性篩素數

題目鏈接&#xff1a;P3383 【模板】線性篩素數 - 洛谷 | 計算機科學教育新生態 題目難度&#xff1a;普及一 題目分析&#xff1a;本題是模板題&#xff0c;用到了線性篩法&#xff0c;其中原理是保證范圍內的每個合數都被刪掉&#xff08;在 bool 數組里面標記為非素數…

STM32標準庫移植RT-Thread nano

STM32標準庫移植RT-Thread Nano 嗶哩嗶哩教程鏈接&#xff1a;STM32F1標準庫移植RT_Thread Nano 移植前的準備 stm32標準庫的裸機代碼&#xff08;最好帶有點燈和串口&#xff09;RT-Thread Nano Pack自己的開發板 移植前的說明 本人是在讀學生&#xff0c;正在學習階段&a…

JVM--類加載器

概念 類加載器&#xff1a;只參與加載過程中的字節碼獲取并加載到內存中的部分&#xff1b;java虛擬機提供給應用程序去實現獲取類和接口字節碼數據的一種技術&#xff0c;也就是說java虛擬機是允許程序員寫代碼去獲取字節碼信息 類加載是加載的第一步&#xff0c;主要有以下三…

ECMAScript 6語法

1.ES6簡介 ECMAScript 6&#xff08;簡稱ES6&#xff09;是于2015年6月正式發布的JavaScript語言的標準&#xff0c;正式名為ECMAScript 2015&#xff08;ES2015&#xff09;。它的目標是使得JavaScript語言可以用來編寫復雜的大型應用程序&#xff0c;成為企業級開發語言 。 …

聯想Y7000+RTX4060+i7+Ubuntu22.04運行DeepSeek開源多模態大模型Janus-Pro-1B+本地部署

直接上手搓了&#xff1a; conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…

Tez 0.10.1安裝

個人博客地址&#xff1a;Tez 0.10.1安裝 | 一張假鈔的真實世界 具體安裝步驟參照官網安裝手冊即可。此處只對官網手冊進行補充。 從官網下載apache-tez-0.10.1-bin.tar.gz進行安裝未成功&#xff0c;出現下面的異常。最終按照官網源代碼編譯的方式安裝測試成功。 環境 Had…

FastAPI + GraphQL + SQLAlchemy 實現博客系統

本文將詳細介紹如何使用 FastAPI、GraphQL&#xff08;Strawberry&#xff09;和 SQLAlchemy 實現一個帶有認證功能的博客系統。 技術棧 FastAPI&#xff1a;高性能的 Python Web 框架Strawberry&#xff1a;Python GraphQL 庫SQLAlchemy&#xff1a;Python ORM 框架JWT&…

微服務入門(go)

微服務入門&#xff08;go&#xff09; 和單體服務對比&#xff1a;里面的服務僅僅用于某個特定的業務 一、領域驅動設計&#xff08;DDD&#xff09; 基本概念 領域和子域 領域&#xff1a;有范圍的界限&#xff08;邊界&#xff09; 子域&#xff1a;劃分的小范圍 核心域…

深入解析 Linux 內核內存管理核心:mm/memory.c

在 Linux 內核的眾多組件中,內存管理模塊是系統性能和穩定性的關鍵。mm/memory.c 文件作為內存管理的核心實現,承載著頁面故障處理、頁面表管理、內存區域映射與取消映射等重要功能。本文將深入探討 mm/memory.c 的設計思想、關鍵機制以及其在內核中的作用,幫助讀者更好地理…