python22-元組、列表、字典、集合推導式

課程:B站大學
記錄python學習,直到學會基本的爬蟲,使用python搭建接口自動化測試就算學會了,在進階webui自動化,app自動化

循環語句小作業

    • 元組推導式
    • 列表推導式
    • 字典推導式
    • 實踐是檢驗真理的唯一標準


推導式
簡介
Python 推導式是一種獨特的數據處理方式,可以從一個數據序列構建另一個新的數據序列的結構體。

Python 支持各種數據結構的推導式:

  • 元組 tuple 推導式
  • 列表 list 推導式
  • 字典 dict 推導式
  • 集合 set 推導式

元組推導式

元組推導式可以利用 range 函數、元組、列表、字典和集合等數據類型,快速生成一個滿足指定需求的元組。

格式:

(out_exp_res for item in Sequence )

(out_exp_res for item in Sequence if conditional )

  • out_exp_res:生成元素表達式,可以是有返回值的函數。
  • for out_exp in Sequence:迭代 Sequence 將 out_exp 傳入到 out_exp_res 表達式中。
  • if condition:條件語句,可以過濾 Sequence 中不符合條件的值。
    示例:
# 簡單的元組推導式
t1 = (x for x in range(1,10))
# 生成128位ASCII碼元組
t2 = (chr(x) for x in range(128))
# 生成100以內能被7整除所有數字的元組
t3 = (x for x in range(100) if x%7==0)
# 生成99乘法表結果元組
t4 = (x*y for x in range(1,10) for y in range(1, x+1))
words = ["apple", "banana", "cherry"]
upper_words = (word.upper() for word in words)

列表推導式

列表推導式與元組推導式的區別:

格式上外部由圓括號包裹的表達式改為中括號
格式:

[out_exp_res for item in Sequence ]

[out_exp_res for item in Sequence if conditional ]

  • out_exp_res:生成元素表達式,可以是有返回值的函數。
  • for out_exp in Sequence:迭代 Sequence 將 out_exp 傳入到 out_exp_res 表達式中。
  • if condition:條件語句,可以過濾 Sequence 中不符合條件的值。

示例:

# 簡單的元組推導式
l1 = [x for x in range(1,10)]
# 生成128位ASCII碼元組
l2 = [chr(x) for x in range(128)]
# 生成100以內能被7整除所有數字的元組
l3 = [x for x in range(100) if x%7==0]
# 生成99乘法表結果元組
l4 = [x*y for x in range(1,10) for y in range(1, x+1)]
# 將列表中的字符串轉換為大寫
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]

字典推導式

字典推導式與前兩種推導式的區別

推導式使用花括號包裹
結果表達式需要使用 key-value 形式
格式:

{ key_expr: value_expr for value in collection }

{ key_expr: value_expr for value in collection if condition }

示例:

names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
# 將列表中各字符串值為鍵,各字符串的長度為值,組成鍵值對
newdict = {name:len(name) for name in names}
集合推導式
集合推導式與字典推導式的區別在于結果表達式是單一結果,不是 key-value 形式。格式::{ expression for item in Sequence }{ expression for item in Sequence if conditional }示例:data = ['Bob','123','Tom','ab123','alice','123abc','Jerry','456','Wendy','554','Smith']
# 篩選列表中的數字字符串
newset = {n for n in data if n.isdigit()}

推導式的優點
簡潔高效 推導式允許在一行代碼中完成復雜的生成操作,避免了使用顯式的循環和臨時變量的繁瑣過程。可以大大減少代碼量,并提高編碼效率。
可讀性好 推導式使用簡潔的語法,將迭代、條件判斷和表達式結合在一起,使得代碼更加緊湊和易于理解。它提供了一種清晰、直觀的方式來表達列表生成的邏輯,使得代碼更加可讀性強,降低了出錯的可能性。
靈活性強 推導式非常靈活,可以根據需要添加條件判斷、多個迭代變量和嵌套結構,以滿足不同的需求。這使得推導式適用于各種場景,從簡單的數據轉換到復雜的篩選和操作,都可以通過簡單而直觀的語法實現。
推導式提供了一種簡潔高效、可讀性好和靈活性強的方法來處理可迭代數據。

實踐是檢驗真理的唯一標準

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

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

相關文章

探索 CameraCtrl模型:視頻生成中的精確攝像機控制技術

在當今的視頻生成領域,精確控制攝像機軌跡一直是一個具有挑戰性的目標。許多現有的模型在處理攝像機姿態時往往忽略了精準控制的重要性,導致生成的視頻在攝像機運動方面不夠理想。為了解決這一問題,一種名為 CameraCtrl 的創新文本到視頻模型…

跨端開發技術總結

1.electron: 基于node.js 桌面端:window / linux / macos 手機端:無 頁面:網頁開發相關技術都可以 2.tauri 基于rust 桌面端:window / linux / macos 手機端:android / IOS 頁面:網頁開…

單片機-89C51部分:7、中斷

飛書文檔https://x509p6c8to.feishu.cn/wiki/A5gcwyL5giq1JOkkcsscn8eLnzf 一、中斷的作用 中斷是為使單片機具有對外部或內部隨機發生的事件實時處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或內部事件的能力。它也是單片機最重要的功…

0805登錄_注冊_token_用戶信息_退出-網絡ajax請求2-react-仿低代碼平臺項目

文章目錄 1 JWT1.1 JWT結構1.2 工作流程1.3 優點1.4 缺點1.5 安全實踐1.6. 適用場景1.7 JWT與OAuth2**8. 示例代碼(Node.js)** 2 用戶mock和api3 注冊4 登錄5 token存儲6 請求攔截器設置token6 獲取用戶信息7 退出登錄結語 1 JWT JSON Web Token&#x…

大模型入門

一、模型入門路徑 1. 學習預備知識 編程語言:熟練掌握Python編程語言,包括基本語法、數據結構(列表、字典、元組等)、面向對象編程、文件操作等。Python有豐富的機器學習和深度學習庫,方便進行大模型的開發和實驗。數…

把dll模塊注入到游戲進程的方法_插APC注入

一、概述 APC是異步過程調用,系統創建線程的時候會為線程創建一個APC隊列,當線程調用SleepEx,WaitSingleObjectEx等函數時,并把線程狀態被設置為可提醒狀態時,線程并不會睡眠,而是檢查APC隊列是否為空,如果不為空,轉去執行APC隊列中的每一項,因此給目標進程中的線程插…

git 如何清空當前分支的歷史提交記錄,僅保留最后一次提交

本方法基于新建 Git 孤立分支實現: 1. ??首先檢出待清理的分支 在 IDEA 右下角檢查當前分支名稱 或執行 git branch 確認。如果不在目標分支上,會顯示 (HEAD detached at xxxxx),這時需要先切換分支: git checkout 原分支名 2.…

【C++】Googletest應用

Googletest 1 配置 使用cmake配置: 具體文件后面上傳補充 ./test.out --gtest_filterXXXTest.xxx 2 gdb 為了跟蹤流程,可以使用gdb; gdb ./xxx.out gdb --args ./gtest --gtest_filterxxx.xxx設置運行參數 set args --gtest_filterxxx.…

JavaScript:從DOM概述到window對象的常見事件

一、BOM概述 1.BOM的概念 BOM(Browser Object Model)即瀏覽器對象模型,它提供了獨立于內容而與瀏覽器窗口進行交互的對象,其核心對象是window 2.BOM的構成 BOM比DOM更大,它包含DOM window對象是瀏覽器的頂級對象&a…

qobject與event事件應用

int main(int argc, char *argv[]) {QApplication a(argc, argv);MyWidget mainWidget;mainWidget.setWindowTitle("QObject與事件處理示例");mainWidget.resize(200, 200);mainWidget.show();return a.exec(); }QApplication a(argc, argv);:創建 QAppli…

QTableView復選框居中

目錄 方法一:QSS方法2:自定義復選框委托類一、構造函數 CheckBoxDelegate()二、paint() 方法三、editorEvent() 方法四、關鍵設計要點五、擴展應用場景六、代碼示例(補充) 方法一:QSS QTableView::indicator {position: relative…

基于QT的仿QQ音樂播放器

一、項目介紹 該項目是基于QT開發的?樂播放軟件,界面友好,功能豐富,主要功能如下: 窗口hand部分: 點擊最小化按鈕,窗口最小化 點擊最大化按鈕,窗口最大化 點擊關閉按鈕,程序退出 …

SQL知識點合集---第二彈

數據一 <select id"listPositionAuditCheckSample" resultType"net.nxe.cloud.content.server.entity.PositionAuditCheckSample"><trim prefixOverrides"union all"><if test"userSampleCount ! null and userSampleCount…

【QT】QT控制硬件

QT控制硬件 1.上位機程序開發2.具體例子控制led燈3. linux中的函數跟QT類里面的函數同名&#xff0c;發生沖突4.示例代碼 1.上位機程序開發 QT做一個上位機程序&#xff0c;控制底層的硬件設備(下位機) 總結&#xff1a; 在構造函數里面去初始化&#xff0c;打開硬件驅動在析…

Flutter介紹、Flutter Windows Android 環境搭建 真機調試

目錄 Flutter介紹 Windows 環境搭建 1.安裝配置JDK 2.下載安裝Android Studio 3.下載配置Flutter SDK ?4.運行Flutter doctor命令檢測環境是否配置成功 ?5.打開Android Studio安裝Flutter/Dart 插件 ?6.插件運行Flutter項目 ?編輯 Flutter Android真機調試 Flut…

Android Studio 中使用 SQLite 數據庫開發完整指南(Kotlin版本)

文章目錄 1. 項目準備1.1 創建新項目1.2 添加必要依賴 2. 數據庫設計3. 實現數據庫3.1 創建實體類 (Entity)3.2 創建數據訪問對象 (DAO)3.3 創建數據庫類 4. 創建 Repository5. 創建 ViewModel6. 實現 UI 層6.1 創建筆記列表 Activityactivity_notes_list.xmlNotesListActivity…

Vue基礎(7)_計算屬性

計算屬性(computed) 一、使用方式&#xff1a; 1.定義計算屬性&#xff1a; 在Vue組件中&#xff0c;通過在 computed 對象中定義計算屬性名稱及對應的計算函數來創建計算屬性。計算函數會返回計算屬性的值。 2.在模板中使用計算屬性&#xff1a; 在Vue的模板中&#xff0c;您…

辛格迪客戶案例 | 華道生物細胞治療生產及追溯項目(CGTS)

01 華道&#xff08;上海&#xff09;生物醫藥有限公司&#xff1a;細胞治療領域的創新先鋒 華道&#xff08;上海&#xff09;生物醫藥有限公司&#xff08;以下簡稱“華道生物”&#xff09;是一家專注于細胞治療技術研發與應用的創新型企業&#xff0c;尤其在CAR-T細胞免疫…

[26] cuda 應用之 nppi 實現圖像格式轉換

[26] cuda 應用之 nppi 實現圖像格式轉換 講述 nppi 接口定義通過nppi實現 bayer 格式轉rgb格式官網參考信息:http://gwmodel.whu.edu.cn/docs/CUDA/npp/group__image__color__debayer.html#details1. 接口定義 官網關于轉換的原理是這么寫的: Grayscale Color Filter Array …

2025“釘耙編程”中國大學生算法設計春季聯賽(8)10031007

題目的意思很好理解找從最左邊到最右邊最短路&#xff08;BFS&#xff09; #include <bits/stdc.h> using namespace std; int a[510][510]; // 存儲網格中每個位置是否有障礙&#xff08;1表示有障礙&#xff0c;0表示無障礙&#xff09; int v[510][510]; // 記錄每…