【Python 高頻 API 速學 ④】

一、為什么是這 4 個?

列表(list)是 Python 最常用的可變序列,
90 % 的操作可以濃縮成 「增、并、刪、排」 四個字,
而這四個字正好對應 append / extend / pop / sort。


二、四劍客一覽

方法作用原地?返回值典型復雜度
append(obj)末尾追加 1 個元素?NoneO(1)
extend(iter)末尾批量并入?NoneO(k)
pop(index=-1)按索引刪除并返回?被刪元素O(n-i)
sort(key=, reverse=)就地排序?NoneO(n log n)

三、一行代碼場景秀

  1. 邊讀邊攢:把文件所有非空行收集起來
lines = []
for line in open('data.txt'):if line.strip():lines.append(line)
  1. 兩個列表合并成一份任務隊列
todo = []
todo.extend(urgent)
todo.extend(normal)
  1. 實現“撤銷最后一次”功能
history = ['write', 'save', 'commit']
last = history.pop()          # -> 'commit'
  1. 按成績降序,同名按年齡升序
students.sort(key=lambda s: (-s.score, s.age))
  1. 一行代碼實現簡易 LRU(最近最少使用)緩存
cache, cap = [], 3
def use(x):if x in cache: cache.pop(cache.index(x))cache.append(x)if len(cache) > cap: cache.pop(0)

四、mini 實戰:日志 Top-N 實時排序

需求:實時追加數據,始終保證列表內保留訪問次數最高的 10 個 IP。

from collections import Counter
top10 = []
counter = Counter()for ip in stream():           # 假設 stream 持續產生 ipcounter[ip] += 1if ip in top10:           # 已存在 → 直接重排top10.sort(key=counter.get, reverse=True)elif len(top10) < 10 or counter[ip] > counter[top10[-1]]:top10.append(ip)top10.sort(key=counter.get, reverse=True)if len(top10) > 10:top10.pop()       # 踢掉第 11 名
print(top10)

核心動作拆解:
? append 新增候選
? sort 實時重排
? pop 淘汰末尾


五、記憶口訣

“append 點射,extend 掃射,pop 拔刀,sort 排隊。”

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

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

相關文章

K8S的POD數量限制

#k8s-v1.11.11.查詢當前節點的最大pod數kubectl describe nodes | grep pods2.編輯配置文件把單臺的pod數量調到150個vim /etc/systemd/system/kubelet.service #添加最大數量--maxPods: 1503.加載配置重啟服務systemctl daemon-reload systemctl restart kubelet#k8s-v1.21.41…

OpenAI開源大模型 GPT-OSS 開放權重語言模型解析:技術特性、部署應用及產業影響

注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》&#xff08;跟我一起學人工智能&#xff09;【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

CSS--后端也有自己的CSS要學

CSS,即Cascading Style Sheets,它描述了網頁的表現與展示效果 為了演示CSS,我寫了一個簡單的index.html 為了使用控制變量法,一開始我先不寫style.css文件的內容 右鍵在默認瀏覽器里查看頁面,看看效果 1-選擇器 根據標簽名進行匹配,所以也叫元素選擇器 頁面效果: 根據…

Docker swarm 常用的命令集合

#docker swarm## 初始化單節點Swarm docker swarm init# 部署測試服務 docker service create --name web --publish 8080:80 --replicas 3 nginx:alpine# Manager節點初始化&#xff08;指定IP&#xff09; docker swarm init --advertise-addr 192.168.1.100# 獲取加入令牌 M…

231. 2 的冪

Problem: 231. 2 的冪 文章目錄思路解題過程復雜度Code思路 2的冪 n 的二進制只有一個1&#xff0c;而 n - 1的二進制則是把 n 的二進制1變0, 0變1。 例&#xff1a;2^24100,34-1011. 解題過程 n & n - 1 0 復雜度 時間復雜度: O(1)O(1)O(1)空間復雜度: O(1)O(1)O(1) Co…

淺嘗AI輔助C轉Verilog方法

一、常規算法模塊的開發流程日常芯片開發工作中&#xff0c;挺多看工作是把C語言轉verilog。例如ISP的代碼&#xff0c;都很先由算法進行C model的開發&#xff0c;驗證完性能后&#xff0c;輸出算法原理文檔和c代碼&#xff1b;數字設計接手&#xff0c;把C語言轉換為verilog代…

Redis分布式鎖詳解:原理、實現與實戰案例

目錄 1. 什么是分布式鎖&#xff1f; 分布式鎖的核心要求 2. 基于Redis的分布式鎖實現方案 &#xff08;1&#xff09;基礎方案&#xff1a;SETNX EXPIRE &#xff08;2&#xff09;優化方案&#xff1a;SET NX PX&#xff08;原子性加鎖&#xff09; &#xff08;3&…

【能碳建設1】用AI+開源打造物聯網+能碳管理+交易SaaS系統的最短路徑實施指南

摘要 本指南為技術小白設計,目標是在最短時間內利用AI工具與開源系統,獨立完成一套物聯網平臺 + 能碳管理平臺 + 碳交易系統的SaaS最小可用版本(MVP),并可后續擴展。流程分為目標定義、技術選型、環境搭建、核心功能開發、SaaS化、多租戶、上線運維等環節,按天推進,每步…

CVPR中深度學習新范式:通用性、魯棒性與多模態的創新突破

來gongzhonghao【圖靈學術計算機論文輔導】&#xff0c;快速拿捏更多計算機SCI/CCF發文資訊&#xff5e;分享一個深度學習領域正在迅速升溫的前沿方向&#xff1a;通用性與魯棒性的深度神經網絡架構創新。隨著大模型在視覺、文本乃至多模態任務中的廣泛應用&#xff0c;體現出深…

Vue3 學習教程,從入門到精通,Vue 3 + Tailwind CSS 全面知識點與案例詳解(31)

Vue 3 Tailwind CSS 全面知識點與案例詳解一、Vue 3 核心語法知識點 1. Vue 3 基礎 創建 Vue 3 項目 使用 Vite 創建項目&#xff1a;npm create vuelatest # 選擇需要的特性&#xff08;如 TypeScript、Vue Router&#xff09;響應式數據 使用 ref 和 reactive&#xff1a;im…

Android中RecyclerView基本使用

一、RecyclerView 核心概念1. 基本組件關系2. 核心組件作用Adapter&#xff1a;數據與視圖的橋梁LayoutManager&#xff1a;控制布局方式&#xff08;線性/網格/瀑布流&#xff09;ViewHolder&#xff1a;緩存視圖組件ItemDecoration&#xff1a;添加分割線等裝飾ItemAnimator&…

A100用transformers推理gpt-oss

A100本地用transformers推理gpt-oss GPT-oss試用 gpt-oss有兩個原生配置是目前&#xff08;2025-8-8&#xff09;Ampere系列顯卡不支持的&#xff0c;分別是默認的MXFP4量化&#xff0c;以及Flash-attn V3。tranformers推理是比較慢的&#xff0c;可以用于研究模型本身&#x…

虛擬手機號工具使用

背景&#xff1a;注冊部分國外應用時需要國外手機號驗證&#xff0c;例如在注冊cursor時需要國外手機號 解決&#xff1a;使用虛擬手機號網頁進行驗證 https://temp-number.com/ 選擇自己需要的國家 選擇一個手機號 復制手機號到自己的app注冊頁面 并發送消息&#xff0c;然后…

【線程池】壓測確定線程池合適的參數

【線程池】壓測確定線程池合適的參數【一】案例說明【二】明確線程池核心參數及優化目標【1】線程池核心參數&#xff08;需壓測驗證的關鍵參數&#xff09;【2】優化目標【三】壓測前準備【1】環境搭建【2】線程池初始配置&#xff08;基于經驗值&#xff09;【3】壓測工具與監…

GPT OSS 雙模型上線,百度百舸全面支持快速部署

GPT OSS 是 OpenAI 推出的重量級開放模型&#xff0c;專為強推理能力、智能體任務及多樣化開發場景設計&#xff0c;標志著大模型在開放性與實用性上的重要突破。該系列包含兩款高性能模型&#xff1a;參數規模為 117B 的 GPT?OSS?120B 和 21B 的 GPT?OSS?20B。二者皆采用 …

C++高頻知識點(十七)

文章目錄81. 你對智能指針的了解82. 一元、二元仿函數的區別和使用背景一元仿函數二元仿函數83. 描述Linux下文件刪除的原理84. 什么是菱形繼承&#xff1f;有什么問題&#xff0c;怎么解決&#xff1f;解決菱形繼承問題85. IO多路復用是什么&#xff1f;selectpollepollselect…

如何優雅的使用進行參數校驗

在spring里面有一個注解 Validated可以在方法的入參里面這樣寫//方法 getActivityFlag(RequestBody Validated QueryActivityDto queryActivityDto) //參數詳情NotBlank(message "userId不能為空")private String userId;NotNull(message "storeId不能為空&q…

Java學習第一百一十部分——CI/CD

目錄 一、前言簡介 二、基本信息 三、優勢價值 四、核心流程 五、技術棧&#xff08;工具矩陣&#xff09; 六、最佳實踐 七、與DevOps關系 八、挑戰對策 九、使用建議 十、總結歸納 一、前言簡介 CI/CD 的本質是&#xff1a;通過自動化流水線&#xff0c;實現代碼從提…

關于 Cocoapods 使用

一、Podfile & .podspec 文件 1、Podfile 1.1. 什么是 pod 簡單來說&#xff0c;一個 pod 就是 xcode 里面的一個 dependency&#xff1a; Anyway&#xff0c;pod 就是第三方庫的意思。一個 pod 就是指一個第三方庫。 1.2. Podfile 有什么用 Podfile 可以理解為就是…

編程速遞:2025 年巴西 Embarcadero 會議,期待您的到來

每個英雄都有一段充滿奮斗的旅程&#xff0c;這段旅程引領他走向榮耀&#xff0c;而開發者英雄的旅程是2025年巴西Embarcadero大會的重點&#xff0c;以慶祝Delphi成立30周年。網站現已上線巴西Embarcadero在世界上最受期待的Delphi發展英雄會議召開前90天&#xff0c;推出了Em…