1. 程式人生 > >列表推導式,生成器表達式,內置函數

列表推導式,生成器表達式,內置函數

功能 ddb 所有 去重 ron code andrew color tom

找到嵌套列表中名字含有兩個‘e‘的所有名字

1 names = [[Tom, Billy, Jefferson, Andrew, Wesley, Steven, Joe],
2          [Alice, Jill, Ana, Wendy, Jennifer, Sherry, Eva]]
3 l4 = [name for i in names for name in i if name.count(e) == 2 ]
4 print(l4)

執行輸出:

[‘Jefferson‘, ‘Wesley‘, ‘Steven‘, ‘Jennifer‘]

列表推導式,最多不超過3個for循環
判斷只能用一個

字典推導式
將一個字典的key和value對調

1 mcase = {a: 10, b: 34}
2 mcase_frequency = {mcase[k]: k for k in mcase}
3 print(mcase_frequency)

執行輸出:

{10: ‘a‘, 34: ‘b‘}

集合推導式

計算列表中每個值的平方,自帶去重功能

1 squared = {x**2 for x in [1, -1, 2]}
2 print(squared)
3 # Output: set([1, 4])

執行輸出:
{1, 4}

生成器表達式

1 l_obj = (python%s期 % i for i in range(1,12))
2 print(l_obj)

執行輸出:

<generator object <genexpr> at 0x000002DDBEBADE60>

結果是一個生成器對象

如何取值呢?使用__next__方法

1 l_obj = (python%s期 % i for i in range(1,12))
2 #print(l_obj)
3 print(l_obj.__next__())
4 print(l_obj.__next__())
5 print(l_obj.__next__())

執行輸出:

python1期
python2期
python3期

列表推導式,生成器表達式,內置函數