day 16:homework
阿新 • • 發佈:2018-11-02
3.用map來處理字串列表,把列表中所有人都變成sb,比方alex_sb name=['alex','wupeiqi','yuanhao','nezha']
name=['alex','wupeiqi','yuanhao','nezha']
def func(item):
return item + '_sb'
ret = map(func,name)
for i in ret:
print(i)
ret = map(lambda item:item+'_sb',name)
print(list(ret))
4.用filter函式處理數字列表,將列表中所有的偶數篩選出來 num = [1,3,5,6,7,8]
num = [1,3,5,6,7,8]
def func(x):
return x%2 == 0
ret = filter(func,num)
print(list(ret))
ret = filter(lambda x:x%2 == 0,num)
print(list(ret))
5、隨意寫一個20行以上的檔案,執行程式,講乃榮讀到記憶體中,用列表儲存,接受使用者輸入的頁碼,每頁5條,緊輸出當頁的內容。
with open('file',encoding='utf-8') as f: l = f.readlines() page_num = int(input('請輸入頁碼 : ')) pages,mod = divmod(len(l),5) #求有多少頁,有沒有剩餘的行數 if mod: # 如果有剩餘的行數,那麼頁數加一 pages += 1 # 一共有多少頁 if page_num > pages or page_num <= 0: #使用者輸入的頁數大於總數或者小於等於0 print('輸入有誤') 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): print(l[(page_num-1)*5 +i].strip()) #輸出5行
6.如下,每個小字典的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} ] 6.1.計算購買每支股票的總價
ret = map(lambda dic : {dic['name']:round(dic['shares']*dic['price'],2)},portfolio)
print(list(ret))
6.2.用filter過濾出,單價大於100的股票有哪些
ret = filter(lambda dic:True if dic['price'] > 100 else False,portfolio)
print(list(ret))
ret = filter(lambda dic:dic['price'] > 100,portfolio)
print(list(ret))