列表解析表示式不僅可以簡化**,其也是一種所謂的 「向量化」 操作。在一定程度上,增加了**的可讀性和速度。因此,值得學習!!!
列表解析表示式以中括號 和 if (else) / for 表示式組成,結果產生乙個 列表物件 。如果實際操作就很容易理解了。如下:
lst =
[i for i in
range(10
)]lstout[10]
:[0,
1,2,
3,4,
5,6,
7,8,
9]
第一種,由 for 表示式和 if 表示式組成。如下示例:
lst =
[i for i in
range(10
)if i %2==
0]; lst
out[11]
:[0,
2,4,
6,8]
lst =
[i for i in
range(10
)if i %2==
0if i %4==
0]; lst
out[12]
:[0,
4,8]
從上面的示例中,我們可以看出, if 表示式可以一直新增下去。因此,我們可以使用多種 條件 來判斷和篩選資料。
第二種,由 for 表示式和 if…else… 表示式組成。如下示例:
lst =
[ i if i %4==
0else
0for i in
range(10
)if i %2==
0]; lst
out[13]
:[0,
0,4,
0,8]
lst =
[ i if i %4==
0else
0for i in
range(10
)if i %2==
0if i %4==
0]; lst
out[3]
:[0,
4,8]
此時,大家應該可以注意到了,使用 if…else 表示式時,是放在 for 表示式的前面,起到 賦值 的作用。 列表解析與生成器表示式
列表解析與生成器表示式 列表推導式 egg list for i in range 100 egg s i print egg list l egg s i for i in range 100 if i 50 print l 在乙個列表中 將for的迴圈寫在列表的右側。for i in rang ...
Python之列表解析和生成器表示式
列表解析 列表推導式 是非常有用,簡單靈活的工具,可以動態的建立列表。expr for iter var in iterable iterable是乙個可迭代物件 expr是元素的處理結果 列表解析就是在一行 中寫了乙個for迴圈 結果返回的是乙個列表 例1 我要建立乙個 0,1,4,9,16,25...
python 迭代器 列表解析 三元表示式
一.迭代器 1.迭代器協議和迭代器物件 1 迭代器協議是指 物件必須提供乙個next方法,執行該方法要麼返回迭代中的下一項,要麼就引起乙個stoplteration異常,以終止迭代 2 可迭代物件 實現了迭代器協議的物件 如何實現 物件內部定義乙個 iter 方法 3 協議 是一種約束,可迭代物件實...