Python學習(2) ----- Python的數據類型及其集合操作

在 Python 中,一切皆對象,每個對象都有類型。下面是 Python 中的常見內置類型分類和示例:


🟡 1. 數字類型(Numeric Types)

類型說明示例
int整數5, -42
float浮點數3.14, -0.5
complex復數1 + 2j
a = 10        # int
b = 3.14      # float
c = 2 + 3j    # complex

🔤 2. 文本類型

類型說明示例
str字符串"hello"'你好' 單引號或者雙引號,如果涉及到換行的可以使用三雙引號 “”" “”"
s = "Hello, 世界"
s = """
!!!
this is template!!!
!!!
"""

📦 3. 序列類型(Sequence Types)

類型說明示例
list可變列表[1, 2, 3]
tuple不可變元組(1, 2, 3)
range范圍對象range(0, 5)
my_list = [1, 2, 3]
my_tuple = (4, 5, 6)

🔡 4. 集合類型

類型說明示例
set無序不重復集合{1, 2, 3}
frozenset不可變集合frozenset([1,2])
my_set = {1, 2, 3}

📖 5. 映射類型(Mapping)

類型說明示例
dict字典{"name": "Alice", "age": 30}
person = {"name": "Alice", "age": 25}

🔘 6. 布爾類型

類型說明示例
bool布爾值(真/假)True, False
is_valid = True

🧼 7. 特殊類型

類型說明示例
NoneType空值/無返回None
bytes二進制數據b"abc"
bytearray可變二進制序列bytearray(b"abc")

? 類型檢查與轉換

檢查類型:

type(3.14)          # <class 'float'>
isinstance("abc", str)  # True

類型轉換:

int("123")        # => 123
float("3.14")     # => 3.14
str(456)          # => "456"
list("abc")       # => ['a', 'b', 'c']

💡 拓展:自定義類型(類)

class Dog:def __init__(self, name):self.name = named = Dog("Buddy")
print(type(d))  # <class '__main__.Dog'>

集合類型的詳細操作

當然可以!以下是包括集合類型的定義、添加、刪除操作在內的 Python 集合類型完整說明,幫助你全面理解集合(setfrozenset)的使用:


🧩 Python 集合類型(Set Types)完整說明


🔹 1. set(可變集合)

? 定義:

my_set = {1, 2, 3}
my_set2 = set([4, 5, 6])  # 使用 set() 構造

? 添加元素:

方法說明示例
add(elem)添加一個元素my_set.add(4)
update(iterable)添加多個元素(可傳列表、元組等)my_set.update([5, 6, 7])
my_set = {1, 2, 3}
my_set.add(4)               # => {1, 2, 3, 4}
my_set.update([5, 6])       # => {1, 2, 3, 4, 5, 6}

? 刪除元素:

方法說明示例
remove(elem)刪除元素,不存在則拋出異常my_set.remove(2)
discard(elem)刪除元素,不存在也不會拋異常my_set.discard(100)
pop()隨機刪除一個元素并返回它val = my_set.pop()
clear()清空集合my_set.clear()
my_set = {1, 2, 3, 4}
my_set.remove(2)       # => {1, 3, 4}
my_set.discard(100)    # 不報錯
value = my_set.pop()   # 刪除并返回任一元素
my_set.clear()         # => 空集合 set()

🔹 2. frozenset(不可變集合)

? 定義:

fset = frozenset([1, 2, 3])

?? 不可修改:

  • 不支持 .add().remove().update() 等修改操作。
  • 可以用于字典的鍵或集合的元素(因為它是可哈希的)。

🧠 3. 集合的特點總結

  • 自動去重:{1, 2, 2, 3} 會變成 {1, 2, 3}
  • 元素無序:無法通過索引訪問,如 set[0] 是錯誤的
  • 可進行集合運算(交、并、差等)
a = {1, 2, 3}
b = {3, 4, 5}print(a | b)  # 并集 => {1, 2, 3, 4, 5}
print(a & b)  # 交集 => {3}
print(a - b)  # 差集 => {1, 2}

? 小結

操作可變 set不可變 frozenset
添加元素? .add() / .update()? 不支持
刪除元素? .remove() / .discard() / .pop() / .clear()? 不支持
集合運算? 支持? 支持
可做字典鍵?? 支持

當然可以!下面是 Python 中字典(dict)和列表(list)的常見 API 操作大全,適合新手和有經驗的開發者查閱和學習。


🧾 Python 常用 listdict 操作總結


📚 一、列表(list)常見操作

? 創建列表

lst = [1, 2, 3]
lst2 = list(range(5))   # [0, 1, 2, 3, 4]

? 添加元素

操作示例說明
append(x)lst.append(4)尾部添加一個元素
extend([...])lst.extend([5, 6])添加多個元素
insert(i, x)lst.insert(1, 'a')插入到指定位置

? 刪除元素

操作示例說明
pop()lst.pop()移除最后一個并返回
pop(i)lst.pop(2)移除指定索引
remove(x)lst.remove(3)移除第一次出現的值
clear()lst.clear()清空列表

? 查找/判斷

操作示例說明
in3 in lst是否存在
index(x)lst.index(3)第一次出現的索引
count(x)lst.count(1)某元素出現次數

? 排序/翻轉

操作示例說明
sort()lst.sort()升序排序(原地)
sort(reverse=True)lst.sort(reverse=True)降序排序
sorted(lst)返回新排序列表
reverse()lst.reverse()原地翻轉

📘 二、字典(dict)常見操作

? 創建字典

d = {"name": "Alice", "age": 30}
d2 = dict(id=123, status="ok")

? 訪問與修改

操作示例說明
訪問鍵值d["name"]獲取鍵對應的值
安全訪問d.get("gender", "unknown")不存在時返回默認值
修改值d["age"] = 35修改鍵對應的值

? 添加鍵值對

d["gender"] = "female"

? 刪除鍵值對

操作示例說明
pop(key)d.pop("name")刪除鍵并返回值
deldel d["age"]刪除鍵值對
clear()d.clear()清空字典

? 遍歷字典

for k in d: print(k)               # 遍歷鍵
for v in d.values(): print(v)      # 遍歷值
for k, v in d.items(): print(k, v) # 遍歷鍵值對

? 獲取內容

操作示例說明
keys()d.keys()所有鍵
values()d.values()所有值
items()d.items()所有鍵值對 (tuple 形式)

? 合并與更新

d.update({"age": 31, "city": "Beijing"})

? 小結圖表

類型操作方法 / 函數說明
list添加append(), insert()添加元素
list刪除pop(), remove()刪除元素
list排序/翻轉sort(), reverse()排序和翻轉
dict添加/修改dict[key] = val設置鍵值
dict刪除pop(), del, clear()刪除鍵
dict遍歷items(), keys()遍歷所有鍵或鍵值對

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

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

相關文章

深入解析Go語言數據類型:從底層到高級應用

引言 Go語言的數據類型系統設計體現了??簡潔性??與??高效性??的完美平衡。作為靜態編譯型語言&#xff0c;Go提供了豐富的數據類型支持&#xff0c;從基礎數值類型到高級并發原語&#xff0c;都經過精心設計。本文將深入剖析Go語言數據類型體系&#xff0c;揭示其底層…

數據交易場景的數據質量評估

在現代數字化時代&#xff0c;數據已成為推動商業發展的核心驅動力。基于不同的交易產品和業務場景&#xff0c;數據產品的質量和準確性直接影響到數據資產的價值及其在市場中的流通性。因此&#xff0c;為數據產品提供全面、深入的數據質量評估報告&#xff0c;不僅有助于提升…

Java 對接 Office 365 郵箱全攻略:OAuth2 認證 + JDK8 兼容 + Spring Boot 集成(2025 版)

&#x1f6a8; 重要通知&#xff1a;微軟強制 OAuth2&#xff0c;傳統認證已失效&#xff01; 2023 年 10 月起&#xff0c;Office 365 全面禁用用戶名 密碼認證&#xff0c;Java 開發者必須通過OAuth 2.0實現郵件發送。本文針對 CSDN 技術棧&#xff0c;提供從 Azure AD 配置…

一文詳談Linux中的時間管理和定時器編程

&#xff08;目錄&#xff09; 先說一些在計算機中需要用到時間的地方&#xff1a;系統日志log、OS調度(時間片、定時器)等等~~ 時間的計量 計時的方式發展&#xff1a;日晷、沙漏 -> 機械鐘 -> 石英振蕩器、晶振 -> 銫原子鐘 -> 氫原子鐘 計算機中的計時方式&…

使用FastAPI+Sqlalchemy從一個數據庫向另一個數據庫更新數據(sql語句版)

from sqlalchemy import create_engine, text from sqlalchemy.orm import sessionmaker # 配置數據庫連接&#xff08;示例為PostgreSQL->MySQL&#xff09; SRC_DB_URL postgresql://user:passsource_host:5432/source_db DST_DB_URL mysqlpymysql://user:passdest_hos…

基于python腳本進行Maxwell自動化仿真

本文為博主進行Maxwell自動化研究過程的學習記錄&#xff0c;同時對Maxwell自動化腳本&#xff08;pythonIron&#xff09;實現方法進行分享。 文章目錄 腳本使用方法腳本錄制與查看常用腳本代碼通用開頭定義項目調整設計變量軟件內對應位置腳本 設置求解器軟件內對應位置腳本…

pikachu通關教程-RCE

目錄 RCE(remote command/code execute)概述: exec "ping" 管道符 亂碼問題 RCE(remote command/code execute)概述: RCE漏洞&#xff0c;可以讓攻擊者直接向后臺服務器遠程注入操作系統命令或者代碼&#xff0c;從而控制后臺系統 分為遠程代碼和遠程命令兩種.當…

JavaScript性能優化全景指南

JavaScript性能優化全景指南 Ⅰ. 加載性能優化 1.1 代碼分割與懶加載 動態導入(ES2020) javascript // 路由級代碼分割 const ProductPage () > import(/* webpackChunkName: "product" */ ./ProductPage.vue); // 交互驅動加載 document.querySelector(#char…

BaseTypeHandler用法-筆記

1.BaseTypeHandler簡介 org.apache.ibatis.type.BaseTypeHandler 是 MyBatis 提供的一個抽象類&#xff0c;通過繼承該類并實現關鍵方法&#xff0c;可用于實現 Java 類型 與 JDBC 類型 之間的雙向轉換。當數據庫字段類型與 Java 對象屬性類型不一致時&#xff08;如&#xff…

t015-預報名管理系統設計與實現 【含源碼!!!】

項目演示地址 摘 要 傳統辦法管理信息首先需要花費的時間比較多&#xff0c;其次數據出錯率比較高&#xff0c;而且對錯誤的數據進行更改也比較困難&#xff0c;最后&#xff0c;檢索數據費事費力。因此&#xff0c;在計算機上安裝預報名管理系統軟件來發揮其高效地信息處理的…

Day12 - 計算機網絡 - HTTP

HTTP常用狀態碼及含義&#xff1f; 301和302區別&#xff1f; 301&#xff1a;永久性移動&#xff0c;請求的資源已被永久移動到新位置。服務器返回此響應時&#xff0c;會返回新的資源地址。302&#xff1a;臨時性性移動&#xff0c;服務器從另外的地址響應資源&#xff0c;但…

【python深度學習】Day 40 訓練和測試的規范寫法

知識點回顧&#xff1a; 彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中展平操作&#xff1a;除第一個維度batchsize外全部展平dropout操作&#xff1a;訓練階段隨機丟棄神經元&#xff0c;測試階段eval模式關閉dropout 作業&#xff1a;仔細學習下測試和訓練代碼…

亡羊補牢與持續改進 - SRE 的安全日志、審計與事件響應

亡羊補牢與持續改進 - SRE 的安全日志、審計與事件響應 如果說我們之前討論的安全措施(如 IAM、網絡策略、密鑰管理、漏洞補丁)是為我們的“數字城堡”修筑堅固的城墻、設置精密的門鎖、定期檢查和修補潛在的裂縫,那么安全日志就像是遍布城堡內外的監控攝像頭和出入登記簿,…

CppCon 2014 學習第2天:Using Web Services in C++

概述 這是一個會議或演講的概述內容&#xff0c;主要介紹一個關于C Rest SDK的分享&#xff0c;翻譯和理解如下&#xff1a; 翻譯 概述 先介紹什么是典型的Web服務結構和它的特征講講調用這些Web服務的幾種方式重點介紹自己團隊開發的一個C庫&#xff08;C Rest SDK&#xf…

【OpenHarmony】【交叉編譯】使用gn在Linux編譯3568a上運行的可執行程序

linux下編譯arm64可執行程序 一.gn ninja安裝二.交叉編譯工具鏈安裝1.arm交叉編譯工具2.安裝arm64編譯器 三. gn文件添加arm及arm64工具鏈四.編譯驗證 本文以gn nijia安裝中demo為例&#xff0c;將其編譯為在arm64(rk_3568_a開發板)環境下可運行的程序 一.gn ninja安裝 安裝g…

【開發心得】AstrBot對接飛書失敗的問題探究

飛書與AstrBot的集成使用中,偶爾出現連接不穩定的現象。盡管不影響核心功能,但為深入探究技術細節并推動后續優化,需系統性記錄該問題。先從底層通信機制入手,分析連接建立的邏輯與數據交互流程。基于實際現象,明確問題發生的具體場景和表現特征,進而梳理潛在影響因素,為…

Spring Boot 3.5.0中文文檔上線

Spring Boot 3.5.0 中文文檔翻譯完成&#xff0c;需要的可收藏 傳送門&#xff1a;Spring Boot 3.5.0 中文文檔

7.atlas安裝

1.服務器規劃 軟件版本參考&#xff1a; https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.2?hlzh-cn 由于hive3.1.3不完全支持jdk8,所以將hive的版本調整成4.0.1。這個版本沒有驗證過&#xff0c;需要讀者自己抉擇。 所有的軟件都安裝再/op…

c# 獲取電腦 分辨率 及 DPI 設置

using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices;/// <summary> /// 這個可以 /// </summary> class Program {static void Main(){//設置DPI感知try{SetProcessDpiAwareness(…

LangChain表達式(LCEL)實操案例1

案例1&#xff1a;寫一篇短文&#xff0c;然后對這篇短文進行打分 from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import RunnableWithMessageHist…