定義
哈希
哈希是一種將任意大小的數據映射到固定大小值的過程
在Python中,可哈希(hashable)指的是一個對象能夠被哈希函數處理,即該對象有哈希值(通過__hash__方法),並且可以與其它對象比較(通過__eq__方法)。
- 可哈希滿足條件
- 在其生命週期內,哈希值從不改變(即它是不可變的)。
- 可以與其他對象比較(實現了__eq__方法)
- 其他
不可變類型(如整數、浮點數、字符串、元組)通常是可哈希的。可變類型(如列表、字典、集合)是不可哈希的,因為它們的內容可以改變,而哈希值應該基於內容,所以內容改變會導致哈希值改變,這不符合哈希值的定義。
元組
元組是一個有序的,不可變的元素序列
元組的可哈希性使其可以作為字典鍵和集合元素
特性
- 有序性:元素順序很重要
- 可重複性:元素可以重複出現
- 一旦創建,長度不可改變
創建
- 使用
()創建 - 使用
,創建 - 單個元素的元組(必須加逗號)
- 使用tuple()函數
集合
用於存儲無序,不重複的元素;可以進行交際,並集,差集等操作
定義
- 集合(set)是一個無序的不重複的元素序列
- 集合中的元素必須是哈希的(不可變類型)
- 集合本身是不可哈希,所以集合不能作為集合的元素,但frozenset(不可變集合)可以
創建
- 使用大括號創建
- 使用
set()函數創建
常用操作
- 添加元素
add():向集合中添加一個單個元素,要求這個元素必須可哈希update():用於將一個可迭代對象中的元素(必須可哈希)添加到集合中
- 刪除元素
remove():不存在會報錯discard():不存在不報錯pop():隨機刪除
- 集合運算
|:並集&:交集-:差集^:對稱差集(只在某一方中)
總結
元組的核心特點:
- 有序性:元素保持插入順序
- 不可變性:創建後不能修改
- 可重複性:元素可以重複
- 可哈希性:如果所有元素可哈希,則元組可哈希
集合的核心特點
- 無序性:元素沒有固定順序
- 互異性:元素不重複
- 可變性:可以添加/刪除元素(除frozenset)
- 可哈希要求:元素必須可哈希
歸納
- 如果數據是記錄(有固定字段),使用元組
- 如果數據是集合(需要去重或者快速查找),使用集合
- 如果需要頻繁修改,使用列表
- 如果需要鍵值對,使用字典
推導式
簡潔創建數據結構的語法
[expression for item in iterable if condition]:列表推導式,用於創建一個列表,返回一個列表
- 基本推導式
- 帶條件判斷的列表推導式
- 多個循環的列表推導式
- 嵌套列表推導式(矩陣轉置)
{key_expression: value_expression for item in iterable if condition}:字典推導式,用於創建字典,返回一個字典
- 簡單列表推導式
- 鍵值轉換
- 帶條件判斷的字典推導式
- 根據dict.items()特性,也可以寫成列表推導式
- 合併兩個列表為一個字典
{expression for item in iterable if condition}:集合推導式,用於創建集合,返回一個集合
- 創建唯一元素的集合
- 從列表中提取唯一的元素
- 帶條件的集合推導式
表達式
能計算出一個值的代碼片段
(expression for item in iterable if condition):生成器表達式,用於創建生成器,返回一個生成器對象
- 創建生成器
使用yield表達式(生成器函數)
value_if_true if condition else value_if_false:s三元表達式,條件表達式
- 基本用法
lambda表達式(匿名函數)
- 基本用法
- 與三元表達式聯用
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。