列表推導式,生成器表達式,內置函數
阿新 • • 發佈:2018-09-19
功能 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期
列表推導式,生成器表達式,內置函數