列表解析,集合解析,字典解析,
1. 列表解析
1.1. 語法:
[ 表達式 for 元素 in 可迭代對象 if 條件 ]
- [ ]表示要生成一個列表
- 表達式為會放入生成的列表中的元素
- for表示for循環
- if為可選條件, 如果if存在那麼只有當if的條件為真的時候才能將表達式放入生成的列表當中
1.2. 用途:
-
列表的初始化,用於生成一些有規律的列表
- 用於列表元素的篩選(挑選/剔除出一個列表當中滿足某些特殊要求的元素
ps: 關於第一點: 有規律表示的是可以使用表達式表示出來的規律,比如正數(n > 0),奇數(n % 2 != 0), 平方數(n**2)........但是諸如質數,無理數這一類不能簡單的表示的元素是無法使用列表解析的(當然,也不是絕對的,不強擼灰飛煙滅的道理大家都懂)
1.3. 舉例說明:
1.3.1. 生成一個列表他們是1-9所有整數的平方
1.3.1.1. 使用普通的迭代實現
lis = [] for i in range(1,10): lis.append(i**2)
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
1.3.1.2. 使用列表解析
lis = [ _**2 for _ in range(1, 10)] # _也是一個普通的變量,但是由於此處的表達式僅僅用於迭代,不會二次使用,所以使用_是為了告知閱讀的人這一點,提高代碼可讀性 # 如果依舊不明白可以查看Python標識符的命名規則
結果:
[1, 4, 9, 16, 25, 36, 49, 64, 81]
1.3.2. 篩選出列表中為奇數的元素
1.3.2.1 使用迭代:
res = [] for i in lis: if i % 2 != 1: res.append(i) res
結果:
[4, 16, 36, 64]
1.3.2.2 使用列表解析:
res = [ _ for _ in lis if _ % 2 != 1 ] res
結果:
[4, 16, 36, 64]
2. 集合解析:
有了前面的列表解析作為鋪墊,集合解析就簡單很多了.
2.1. 語法:
{表達式 for 元素 in 可迭代對象 if 條件 }
這個與列表解析唯一的區別在於方括號 []"換成了花括號 "{}"
2.2. 舉例說明(有了前面的鋪墊,此處所有的代碼我將會寫在同一個腳本中):
s1 = {1, 2, 6, 8, 10, 12, 13, 17, 20} s2 = {1, 13, 17} s3 = {3, 4, 5, 6, 10, 12, 13, 14, 15, 16} from random import randint # 用於生成隨機元素 from random import randint # 使用迭代創建集合 s1 = set() for i in range(10): s1.add(randint(1,20)) print("s1 =", s1) #使用迭代篩選出其中的奇數 s2 = set() for i in s1: if i & 1 == 1: s2.add(i) print("s2 = ",s2) # 使用集合解析創建集合 s3 = {randint(1,20) for _ in range(10)} print("s3 =", s3) # 使用集合解析篩選其中的奇數元素 s4 = { _ for _ in s3 if _ & 1 != 0 } print("s4 =", s4)s4 = {13, 3, 5, 15}
結果:
s1 = {1, 2, 6, 8, 10, 12, 13, 17, 20}
s2 = {1, 13, 17}
s3 = {3, 4, 5, 6, 10, 12, 13, 14, 15, 16}
s4 = {13, 3, 5, 15}
3. 字典解析:
3.1. 語法:
{ 鍵 : 值 for 元素 in 可迭代對象 if 條件 }
集合和字典的區別就在於冒號 " : ",集合的表達式是單個元素,而字典是鍵值對,所以我就不再舉例說明,你可以自己下去慢慢的摸索.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)