[Python]列表生成式
- 2020 年 3 月 10 日
- 筆記
文章目錄 - @[toc]
- 0. 環境
- 1. 基礎
- 1.1. 基礎語法格式
- 1.2. 循環嵌套語法格式
- 1.3. 循環+嵌套判斷語法格式
- 2. 例子
- 2.1. eg.基礎語法格式
- 2.2. eg.循環嵌套語法格式
- 2.3. eg.循環+嵌套判斷語法格式
- 2.4. eg.篩選列表中的str變數,並使其變成小寫
- 3. 參考文獻
Python列表生成式
Python文檔整理目錄: https://blog.csdn.net/humanking7/article/details/80757533
0. 環境
Python 3.6
1. 基礎
列表生成式 就是一個用來生成列表的 特定語法形式 的 表達式 列表生成式 即
List Comprehensions,是Python內置的非常簡單卻強大的可以用來創建list的生成式
1.1. 基礎語法格式
# 基礎語法格式 [exp for iter_var in iterable]
解釋:
- 迭代iterable中的每個元素;
- 每次迭代都先把結果賦值給iter_var,然後通過exp得到一個新的計算值;
- 最後把所有通過exp得到的計算值以一個新列表的形式返回。
等價於:
L = [] for iter_var in iterable: L.append(exp)
1.2. 循環嵌套語法格式
# 循環嵌套語法格式 [exp for iter_var_A in iterable_A for iter_var_B in iterable_B]
解釋:
- 每迭代
iterable_A中的一個元素,就把ierable_B中的所有元素都迭代一遍
等價於:
L = [] for iter_var_A in iterable_A: for iter_var_B in iterable_B: L.append(exp)
1.3. 循環+嵌套判斷語法格式
# 循環+嵌套判斷語法格式 [exp2 for iter_var in iterable if exp1]
等價於:
L = [] for iter_var in iterable: if exp1: L.append(exp2)
2. 例子
2.1. eg.基礎語法格式
In [18]: [x*x for x in range(1, 6)] Out[18]: [1, 4, 9, 16, 25]
2.2. eg.循環嵌套語法格式
In [19]: [ m+n for m in 'ABC' for n in '123'] Out[19]: ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
2.3. eg.循環+嵌套判斷語法格式
In [20]: [ x*x for x in range(1, 6) if x%2==0] Out[20]: [4, 16] In [21]: [ x*x for x in range(1, 6) if x%2==1] Out[21]: [1, 9, 25]
2.4. eg.篩選列表中的str變數,並使其變成小寫
In [22]: L1 = ['Hello', 'World', 18, 'Apple', None] In [23]: L2 = [x.lower() for x in L1 if isinstance(x, str)] In [24]: L2 Out[24]: ['hello', 'world', 'apple']
3. 參考文獻
廖雪峰的Python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776
OK! 以上,Enjoy~