国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

基于Python中求和函數(shù)sum的用法詳解

2020-02-15 22:04:23
字體:
供稿:網(wǎng)友

基于Python中求和函數(shù)sum的用法詳解

今天在看《集體編程智慧》這本書的時候,看到一段Python代碼,當時是百思不得其解,總覺得是書中排版出錯了,后來去了解了一下sum的用法,看了一些Python大神寫的代碼后才發(fā)現(xiàn)是自己淺薄了!特在此記錄一下。書中代碼段摘錄如下:

from math import sqrtdef 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 # 計算所有差值的平方和 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))

自己不明白的代碼塊就是在計算所有差值的平方和這里,按照一般語言邏輯,應(yīng)該是for語句和pow語句位置對調(diào)一下啊,很是困惑!后來查閱了一下sum函數(shù)的用法才豁然開朗,再次感嘆Python之神(bian)奇(tai)語法。

sum函數(shù)的參數(shù)是這樣的:sum(iterable[, start]),其中iterable為可迭代對象,可以是list、tuple或者dictionary等。

sum函數(shù)最后的值 = 可迭代對象里面的數(shù)相加的值 + start的值,其中start可以不寫,默認為0。講到這里,那么我們怎么去理解上面計算所有差值的平方和這段代碼呢?其實很簡單,看看下面這段代碼,然后再回去看上面那段代碼就會柳暗花明了!

from math import sqrta = range(1, 11)b = range(1, 10)c = sum([item for item in a if item in b])print c

可以自己輸入這段簡單的代碼運行試試,最終的結(jié)果是:45

補充一點:"item for item in a if item in b" 這種表達式叫作列表推導(dǎo)式,是在一組字符串或者一組對象上執(zhí)行一條相同操作的簡潔寫法!

以上這篇基于Python中求和函數(shù)sum的用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 肇庆市| 宽城| 本溪市| 苍南县| 武城县| 柳州市| 黑山县| 古田县| 博乐市| 霍邱县| 咸宁市| 清新县| 金阳县| 浦北县| 全州县| 公主岭市| 民权县| 建平县| 定日县| 凤翔县| 确山县| 鄯善县| 高青县| 阳原县| 开封市| 察雅县| 金阳县| 丰都县| 奎屯市| 丹寨县| 息烽县| 林州市| 仪陇县| 若尔盖县| 确山县| 延安市| 阿鲁科尔沁旗| 南和县| 孟津县| 孟津县| 弋阳县|