第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

itertools 庫中的 tee() 函數(shù)

itertools 庫中的 tee() 函數(shù)

aluckdog 2022-11-24 15:03:04
這是一個(gè)從列表中獲取最小值、最大值和平均值的簡(jiǎn)單示例。下面的兩個(gè)函數(shù)有相同的結(jié)果。我想知道這兩個(gè)函數(shù)之間的區(qū)別。為什么要使用itertools.tee()?它提供了什么優(yōu)勢(shì)?from statistics import medianfrom itertools import teepurchases = [1, 2, 3, 4, 5]def process_purchases(purchases):    min_, max_, avg = tee(purchases, 3)    return min(min_), max(max_), median(avg)def _process_purchases(purchases):    return min(purchases), max(purchases), median(purchases)def main():    stats = process_purchases(purchases=purchases)    print("Result:", stats)    stats = _process_purchases(purchases=purchases)    print("Result:", stats)if __name__ == '__main__':    main()
查看完整描述

1 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

迭代器在 python 中只能迭代一次。之后,它們“耗盡”并且不再返回更多值。


map()您可以在、和許多其他函數(shù)zip()中看到這一點(diǎn):filter()


purchases = [1, 2, 3, 4, 5]


double = map(lambda n: n*2, purchases)


print(list(double))

# [2, 4, 6, 8, 10]


print(list(double))

# [] <-- can't use it twice

如果將迭代器傳遞給兩個(gè)函數(shù),例如 的返回值,您可以看到它們之間的區(qū)別map()。在這種情況下_process_purchases()失敗,因?yàn)橛帽M了迭代器并且沒有為和min()留下任何值。max()median()


tee()接受一個(gè)迭代器并給你兩個(gè)或更多,允許你多次使用傳遞給函數(shù)的迭代器:


from itertools import tee

from statistics import median


purchases = [1, 2, 3, 4, 5]


def process_purchases(purchases):

    min_, max_, avg = tee(purchases, 3)

    return min(min_), max(max_), median(avg)



def _process_purchases(purchases):

    return min(purchases), max(purchases), median(purchases)


double = map(lambda n: n*2, purchases)

_process_purchases(double)

# ValueError: max() arg is an empty sequence


double = map(lambda n: n*2, purchases)

process_purchases(double)

# (2, 10, 6)


查看完整回答
反對(duì) 回復(fù) 2022-11-24
  • 1 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)