python筆記(內建函式1)
1.帶key的內建函式有:max,min,filter,map,sorted
例:max([1,2,-3,4,5],key = abs)
2.map的用法。
name = [‘pu’,‘hu’,‘yu’,‘ru’]
def func(item):
return item + ‘sb’
ret = map(func,name)
print(ret)
# ||
# ||
ret = map(lambda item:item+’_sb’,name)
print(list(ret))
3.filter的用法
num = [1,2,3,4,5,6,7] ret = filter(lambda item:item%2 == 0,num) print(list(ret))
4.作業:
(1)隨意寫一個2行以上的檔案,執行程式,先將內容讀到記憶體中,用列表儲存,接收使用者輸入頁碼,每頁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: 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())
(2)冒泡演算法
s = [10,9,8,7,6,5,4,3,2,1,1,2,3,4,5]
l = len(s)
for i in range(1,l):
for j in range(l - i):
if s[j] > s[j + 1]:
temp = s[j]
s[j] = s[j + 1]
s[j + 1] = temp
print(s)
(3)
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}
]
1.計算購買每隻股票的總價
ret = map(lambda dic:{dic['name']:round(dic['shares']*dic['price'],3)},portfolio)
print(list(ret))
2.用filter過濾出單價大於100的股票有哪些
ret = filter(lambda dic:dic['price'] > 100,portfolio)
print(list(ret))
5.上次作業
員工資訊表:接收使用者資訊分析資訊。
dic = {'name':1,'id':0,'age':2,'phone':3,'job':4}
def filter(condition):
condition = condition.strip()
if '>' in condition:
col,val = condition.split('>')
print(col,val)
g = get_line('inform.txt')
for line_list in g:
if int(line_list[dic[col]]) > int(val):
# print(line_list)
yield line_list
def views(view_lst,staff_g):
'''展示符合條件的員工資訊'''
for i in g:
print(i)
def get_line(file_name):
with open(file_name,encoding='utf-8') as f:
for line in f:
line = line.strip().split(',')
yield line
#ret = input('>>>')
ret = 'select name,age where age>22'
view,condition = ret.split('where')
view = view.replace('select','').strip()
view_list = view.split(',')
g = filter(condition)
views(view_list,g)