[每個元素或者是和元素相關的操做 for 元素 in 可迭代數據類型] ----------遍歷以後挨個處理
[知足條件的元素相關的操做 for 元素 in 可迭代數據類型 if 元素相關的條件] ----------篩選功能app
# 原始的 num_list = [] for i in range(10): num_list.append(i) print(num_list) # 如今的---列表推導式 num_list = [i for i in range(10)] print(num_list)
簡而言之,print([i for i in range(10)])就是一個列表推導式。ide
num_list = [i for i in range(30) if i % 3 == 0] print(num_list)
1 num_list = [i*i for i in range(30) if i % 3 ==0] 2 print(num_list)
names_list = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']] rcp = [name for lst in names_list for name in lst if name.count('e') == 2] print(rcp)
1 start_dev = {'a':1,'b':2} 2 end_dev = {start_dev[k]:k for k in start_dev} 3 print(end_dev)
1 dic = {'a':5,'B':10,'c':4,'A':5} 2 rcp = {k.lower():dic.get(k.lower(),0)+dic.get(k.upper(),0) for k in dic} 3 print(rcp) 4 # result:{'a': 10, 'b': 10, 'c': 4}
自帶去重功能spa
1 squa = {x**2 for x in [1,-1,2]} 2 print(squa)
# 生成器表達式 g = (i for i in range(10)) for i in g: print(i)
生成器表達式與列表推導式有什麼不一樣?1.括號不同2.返回的值不同,生成器表達式幾乎不佔用內存。