1. 程式人生 > >生成器表示式作業

生成器表示式作業

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)