基于Python中求和函數(shù)sum的用法詳解
基于Python中求和函數(shù)sum的用法詳解
今天在看《集體編程智慧》這本書的時(shí)候,看到一段Python代碼,當(dāng)時(shí)是百思不得其解,總覺得是書中排版出錯(cuò)了,后來去了解了一下sum的用法,看了一些Python大神寫的代碼后才發(fā)現(xiàn)是自己淺薄了!特在此記錄一下。書中代碼段摘錄如下:
from math import sqrt
def sim_distance(prefs, person1, person2):
# 得到shared_items的列表
si = {}
for item in prefs[person1]:
if item in prefs[person2]:
si[item] = 1
# 如果兩者沒有共同之處,則返回0
if len(si) == 0: return 0
# 計(jì)算所有差值的平方和
sum_of_squares = sum([pow(prefs[person1][item] - prefs[person2][item], 2)
for item in prefs[person1] if item in prefs[person2]])
return 1/(1 + sqrt(sum_of_squares))
自己不明白的代碼塊就是在計(jì)算所有差值的平方和這里,按照一般語言邏輯,應(yīng)該是for語句和pow語句位置對(duì)調(diào)一下啊,很是困惑!后來查閱了一下sum函數(shù)的用法才豁然開朗,再次感嘆Python之神(bian)奇(tai)語法。
sum函數(shù)的參數(shù)是這樣的:sum(iterable[, start]),其中iterable為可迭代對(duì)象,可以是list、tuple或者dictionary等。
sum函數(shù)最后的值 = 可迭代對(duì)象里面的數(shù)相加的值 + start的值,其中start可以不寫,默認(rèn)為0。講到這里,那么我們?cè)趺慈ダ斫馍厦嬗?jì)算所有差值的平方和這段代碼呢?其實(shí)很簡單,看看下面這段代碼,然后再回去看上面那段代碼就會(huì)柳暗花明了!
from math import sqrt a = range(1, 11) b = range(1, 10) c = sum([item for item in a if item in b]) print c
可以自己輸入這段簡單的代碼運(yùn)行試試,最終的結(jié)果是:45
補(bǔ)充一點(diǎn):"item for item in a if item in b" 這種表達(dá)式叫作列表推導(dǎo)式,是在一組字符串或者一組對(duì)象上執(zhí)行一條相同操作的簡潔寫法!
以上這篇基于Python中求和函數(shù)sum的用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pycharm2020.1安裝中文語言插件的詳細(xì)教程(不需要漢化)
這篇文章主要介紹了Pycharm2020.1安裝中文語言插件的詳細(xì)教程,不需要漢化,本文給大家分享三種方法,在這小編推薦使用方法二,具體內(nèi)容詳情大家跟隨小編一起看看吧2020-08-08
pytorch 獲取層權(quán)重,對(duì)特定層注入hook, 提取中間層輸出的方法
今天小編就為大家分享一篇pytorch 獲取層權(quán)重,對(duì)特定層注入hook, 提取中間層輸出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
對(duì)Python發(fā)送帶header的http請(qǐng)求方法詳解
今天小編就為大家分享一篇對(duì)Python發(fā)送帶header的http請(qǐng)求方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python調(diào)用服務(wù)接口的實(shí)例
今天小編就為大家分享一篇Python調(diào)用服務(wù)接口的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Matplotlib自定義圖例(多張圖共享一個(gè)圖例)
最近再用Matplotlib繪圖,需要做兩個(gè)子圖都不需要設(shè)置圖例,圖例單獨(dú)用一個(gè)figure來顯示,本文就詳細(xì)的來介紹一下,感興趣的可以了解一下2023-08-08
Python實(shí)現(xiàn)為Excel中每個(gè)單元格計(jì)算其在文件中的平均值
這篇文章主要為大家詳細(xì)介紹了如何基于Python語言實(shí)現(xiàn)對(duì)大量不同的Excel文件加以跨文件、逐單元格平均值計(jì)算,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
pandas DataFrame實(shí)現(xiàn)幾列數(shù)據(jù)合并成為新的一列方法
今天小編就為大家分享一篇pandas DataFrame實(shí)現(xiàn)幾列數(shù)據(jù)合并成為新的一列方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Python函數(shù)實(shí)現(xiàn)學(xué)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Python函數(shù)實(shí)現(xiàn)學(xué)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
Python使用time模塊實(shí)現(xiàn)指定時(shí)間觸發(fā)器示例
這篇文章主要介紹了Python使用time模塊實(shí)現(xiàn)指定時(shí)間觸發(fā)器,結(jié)合實(shí)例形式分析了Python時(shí)間相關(guān)模塊與方法使用技巧,需要的朋友可以參考下2017-05-05

