生成器表示式作業
阿新 • • 發佈:2018-12-12
1,用列表推導式做下列小題
(1) 過濾掉長度小於3的字串列表,並將剩下的轉換成大寫字母
list = ["b","wusir","alex","a"] lst = [i.upper() for i in list if len(i)>=3 ] print(lst)
(2) 求(x,y)其中x是0-5之間的偶數,y是0-5之間的奇陣列成的元祖列表
lst = [(x,y) for x in range(6) for y in range(6) if x %2 == 0 and y %2 == 1] print(lst)
(3) 求M中3,6,9組成的列表M = [[1,2,3],[4,5,6],[7,8,9]]
lst = [3,6,9] result = [[n-2,n-1,n] for n in lst] print(result)
(4) 求出50以內能被3整除的數的平方,並放入到一個列表中。
lst = [i*i for i in range(50) if i % 3 == 0] print(lst)
(5) 構建一個列表:['python1期', 'python2期', 'python3期', 'python4期', 'python6期', 'python7期', 'python8期', 'python9期', 'python10期']
lst = ["python%s"%i for i in range(1,11)] print(lst)
(6) 構建一個列表:[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
lst = [(i,i+1) for i in range(6)] print(lst)
(7) 構建一個列表:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
lst = [i for i in range(19) if i % 2 == 0] print(lst)
(8) 有一個列表l1 = ['alex', 'WuSir', '老男孩', '太白']將其構造成這種列表['alex0', 'WuSir1', '老男孩2', '太白3']
l1 = ['alex', 'WuSir', '老男孩', '太白'] lst = [l1[i]+str(i) for i in range(len(l1))] print(lst)
(9)有以下資料型別:
x = {
'name':'alex',
'Values':[{'timestamp':1517991992.94,
'values':100,},
{'timestamp': 1517992000.94,
'values': 200,},
{'timestamp': 1517992014.94,
'values': 300,},
{'timestamp': 1517992744.94,
'values': 350},
{'timestamp': 1517992800.94,
'values': 280}
],}
將上面的資料通過列表推導式轉換成下面的型別:[[1517991992.94, 100], [1517992000.94, 200], [1517992014.94, 300], [1517992744.94, 350], [1517992800.94, 280]]
x = { 'name':'alex', 'Values':[{'timestamp':1517991992.94, 'values':100,}, {'timestamp': 1517992000.94, 'values': 200,}, {'timestamp': 1517992014.94, 'values': 300,}, {'timestamp': 1517992744.94, 'values': 350}, {'timestamp': 1517992800.94, 'values': 280} ],} lst = [[i['timestamp'],i['values']] for i in x['Values'] ] print(lst)