寫一個prod()函數,可以接受一個list並利用reduce()求積

寫一個prod函數,接受一個……


這裏是三歲,今天的作業解析來啦,快來康康吧!

題目一

寫一個prod()函數,可以接受一個list並利用reduce()求積

思路

一看題目自定義函數 ,得到的結果是求積,而且要用高階函數reduce() 那麼怎麼辦呢先上代碼!

#導入庫
from functools import reduce


# 寫一個prod()函數,可以接受一個list並利用reduce()求積

def prod(list):# 聲明自定義函數prod()
    def quadrature(x, y): # 設計自定義函數quadrature
        return x*y # 返回乘積
    return reduce(quadrature, list) 

# 測試
list = [1,2,3,4,5]
print(prod(list))

結果
120

那麼原理是聲明呢?

'''
參數1 參數2 積
1     2  = 2
2     3  = 6
6     4  = 24 
24    5  = 120
'''

在這裏插入圖片描述
具體的方法見:高階函數

簡化寫法

可以使用匿名函數

# 匿名函數
def prod(list):
    return reduce(lambda x ,y : x*y , list)

list = [1,2,3,4,5]
print(prod(list))

題目二

#[’’, '[email protected] ‘, ‘’, ’ cb [email protected]’, ‘[email protected] ‘, ‘’]
#編寫一個程序去除郵件地址裏的空格,去除空郵件地址,最後拼接成用分號隔開的字符串形式
aa = [’’, '[email protected] ‘, ‘’, ’ [email protected]’, '[email protected] ', ‘’]
#自己編寫一個去除字符串空格的方法strip replace join,split;

解析

一個列表要把空字符串去除然後把原有字符串裏面的空格去除儘量不使用自帶函數

思路一:
使用for循環再用 if遍歷

# 循環
aa_list = ['', '[email protected] ', '', ' [email protected]', '[email protected] ', '']
bb = ''
for aa in aa_list: # 遍歷列表
    if aa == '': # 判斷是不是空字符串
        continue
    else:
        for a in aa: # 遍歷字符串
            if a ==  ' ': # 判斷是不是空格
                continue
            else:
                bb += a # 添加到字符串bb
        bb += ';' # 在合適的地方添加;
# 測試
print(bb)

結果:
abc@qq.com;cba@163.com;ech@hotmail.com;

思路二:可以採用高階函數裏面的filter()進行處理

上代碼

# 高階函數filter()
aa_list = ['', '[email protected] ', '', ' [email protected]', '[email protected] ', '']
bb = ''
for aa in filter(lambda x :x != '', aa_list):
    for a in filter(lambda x :x != ' ', aa):
        bb += a
    bb += ';'
print(bb)

結果:
abc@qq.com;cba@163.com;ech@hotmail.com;

啊~ 今天的分享就到這裏有問題的可以私聊或者留言,點贊,搜餐,留言,轉發,感謝大家的支持!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章