#用map 來處理字符串列表,把列表中所有人都變成 貴賓,
#如王小民_貴賓#解題方式有兩種
#第一種name = ["王小民",'李小白','陳小心'] def func(item): return item +'貴賓' #ret 是迭代器ret = map(func,name) for i in ret : print(i) #第二種 匿名函數
ret = map(lambda item:item + '_貴賓',name ) print(list(ret))執行結果:
王小民貴賓
李小白貴賓
陳小心貴賓
['王小民_貴賓', '李小白_貴賓', '陳小心_貴賓']
#用filter函數處理數字列表,將列表中所有的偶數篩選出來
#兩種方法name = [1,2,3,4,5,6,7,8,9] def func(x): if x%2 == 0: return True
ret = filter(func,name) #ret 是迭代器
print(list(ret)) #另外方法
ret = filter(lambda x: x% 2 == 0,name) ret = filter(lambda x: True if x%2 == 0 else False,name) print(list(ret))執行結果:
[2, 4, 6, 8]
[2, 4, 6, 8]
#主要內容輸入特定數字顯示該行行數內容,每五行為一單位
#例如輸入1,顯示出1 2 3 4 5 6 輸入2 6 7 8 9 10 .....等
#運行程式,先將內容讀到記憶體中,用列表儲存
#創建一個叫egg的文件 內有20個行以上內容with open('egg',encoding='utf-8') as f:l = f.readlines() # readlines 可逐行讀取page_num = int(input('請輸入頁數:'))pages,mod = divmod(len(l),5)#求有多少頁,有沒有剩餘的行數# len 返回長度數量,divmod 可以A除以B (被除數,除數)if mod :#如果有剩餘的行數,那麼頁數加一pages += 1 #一共有多少頁if page_num > pages or page_num <= 0 :#用戶輸入的頁數大於總數或者小於等於0print('輸入有誤')elif page_num == pages and mod != 0 :#如果用戶輸入的頁碼是最後一頁,且之前有過剩餘行數for i in range(mod):print(l[(page_num-1)*5 + i].strip())
#只輸出這一頁上剩餘的行
else :for i in range(5):#正常情況,輸出5行print(l[(page_num-1)*5 +i].strip())
執行結果:
請輸入頁數:1
1
2
3
4
5
#寫一個小字典
# name對應股票名子
# shares 對應多少股
# price對應股票的價格
portfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65} ] # .計算購買每支股票的總價ret = map(lambda dic :{dic['name']: round(dic['shares']*dic['price'],2)},portfolio) print(list(ret)) # .用filter過濾出,單價大於100的股票有哪些
rett = filter(lambda dic:True if dic['price']>100 else False,portfolio)
print(list(rett)) # 另外方法rettt = filter(lambda dic:dic['price']>100,portfolio) print(list(rettt))執行結果:
[{'IBM': 9110.0}, {'AAPL': 27161.0}, {'FB': 4218.0}, {'HPQ': 1111.25}, {'YHOO': 735.75}, {'ACME': 8673.75}]
[{'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'ACME', 'shares': 75, 'price': 115.65}]
[{'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'ACME', 'shares': 75, 'price': 115.65}]
沒有留言:
張貼留言