Python 中求和函式 sum 用法
Python 中求和函式 sum
用法
今天在看《集體程式設計智慧》這本書的時候,看到一段Python
程式碼,當時是百思不得其解,總覺得是書中排版出錯了,後來去了解了一下sum
的用法,看了一些Python
大神寫的程式碼後才發現是自己淺薄了!特在此記錄一下。書中程式碼段摘錄如下:
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
# 計算所有差值的平方和
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))
自己不明白的程式碼塊就是在計算所有差值的平方和
這裡,按照一般語言邏輯,應該是for
語句和pow
語句位置對調一下啊,很是困惑!後來查閱了一下sum
函式的用法才豁然開朗,再次感嘆Python
之神(bian)奇(tai)語法。
sum
函式的引數是這樣的:sum(iterable[, start])
,其中iterable為可迭代物件,可以是list
、tuple
或者dictionary
等。
sum
函式最後的值 = 可迭代物件裡面的數相加的值 + start
的值,其中start
可以不寫,預設為0
。講到這裡,那麼我們怎麼去理解上面計算所有差值的平方和
這段程式碼呢?其實很簡單,看看下面這段程式碼,然後再回去看上面那段程式碼就會柳暗花明了!
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
可以自己輸入這段簡單的程式碼執行試試,最終的結果是:45
補充一點:"item for item in a if item in b"
這種表示式叫作列表推導式
,是在一組字串或者一組物件上執行一條相同操作的簡潔寫法!
最後的最後:人生苦短,我用Python.
相關文章
- python 中求和函式 sum詳解Python函式
- Python 中filter函式用法PythonFilter函式
- python中zip()函式的用法Python函式
- PyThon range()函式中for迴圈用法Python函式
- Python中的split()函式的用法Python函式
- python 中 print 函式用法總結Python函式
- Python 中的map、reduce函式用法Python函式
- MySQL中的SUM函式使用教程MySql函式
- Python中典型內建函式的用法Python函式
- Python中enumerate函式用法詳解Python函式
- Python range() 函式用法Python函式
- Python排序函式用法Python排序函式
- python中upper函式的用法是什麼?Python函式
- python之函式用法divmodPython函式
- mysql中replace函式的用法MySql函式
- Python3 range() 函式用法Python函式
- MySql中SUM函式計算錯誤問題MySql函式
- Excel求和只有sum求和?多種高階求和方法都在這裡了!Excel
- Python 偏函式用法全方位解析Python函式
- Python assert斷言函式及用法Python函式
- python sorted()函式的引數用法Python函式
- python函式符號sympy的用法Python函式符號
- Python函式用法和底層分析Python函式
- C++中函式呼叫的用法C++函式
- Matlab中erf函式的用法Matlab函式
- Java中Split函式的用法技巧Java函式
- matlab中sort函式的用法Matlab函式
- MySQL 對window函式執行sum函式疑似BugMySql函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Note -「因數的尤拉函式求和」函式
- sum()over()和count()over()分析函式函式
- Python函式裝飾器高階用法Python函式
- python之高階函式map,reduce,filter用法Python函式Filter
- Python常見工廠函式用法示例Python函式
- python中怎麼求和Python
- c標準庫中qsort函式用法函式
- SQL groupby sum 用法SQL
- Translate函式用法函式