最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年06月28日 09:05:19   作者:肖老板  
今天小編就為大家分享一篇基于Python中求和函數(shù)sum的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

今天在看《集體編程智慧》這本書的時(shí)候,看到一段Python代碼,當(dāng)時(shí)是百思不得其解,總覺(jué)得是書中排版出錯(cuò)了,后來(lái)去了解了一下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

 # 如果兩者沒(méi)有共同之處,則返回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ǔ)言邏輯,應(yīng)該是for語(yǔ)句和pow語(yǔ)句位置對(duì)調(diào)一下啊,很是困惑!后來(lái)查閱了一下sum函數(shù)的用法才豁然開朗,再次感嘆Python之神(bian)奇(tai)語(yǔ)法。

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

sum函數(shù)最后的值 = 可迭代對(duì)象里面的數(shù)相加的值 + start的值,其中start可以不寫,默認(rèn)為0。講到這里,那么我們?cè)趺慈ダ斫馍厦嬗?jì)算所有差值的平方和這段代碼呢?其實(shí)很簡(jiǎn)單,看看下面這段代碼,然后再回去看上面那段代碼就會(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

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

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

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

相關(guān)文章

最新評(píng)論

禹州市| 林州市| 河北区| 株洲市| 长治县| 芜湖县| 正蓝旗| 铜山县| 北宁市| 尤溪县| 安吉县| 宁城县| 布尔津县| 济阳县| 封丘县| 怀宁县| 吴桥县| 柯坪县| 兴义市| 平江县| 岑溪市| 龙游县| 舟曲县| 夏邑县| 漯河市| 滁州市| 华宁县| 茌平县| 丽水市| 贞丰县| 饶阳县| 得荣县| 张家口市| 长沙县| 察雅县| 吕梁市| 云阳县| 廊坊市| 建瓯市| 三亚市| 南宁市|