python的平方和怎么理解?
def?square_of_sum(L): ????return?sum([i?*?i?for?i?in?L]) print?square_of_sum([1,?2,?3,?4,?5]) print?square_of_sum([-5,?0,?5,?15,?25]) #def?square_of_sum(L): ????sum?=?0 ????for?x?in?L: ????????sum?=?sum?+?x?*?x ????return?sum print?square_of_sum([1,?2,?3,?4,?5]) print?square_of_sum([-5,?0,?5,?15,?25])
能幫我理解一下這為什么可以使元素平方和return sum([i * i for i in L])#這個完全不能理解為什么
sum = 0
? ?for x in L:#這個循環的for是使list的元素全計算吧
? ? ? ?sum = sum + x * x#這個好理解python的平方并不是反v而是*但是sum+x*x的sum是什么?我記得是使打印的時候是整數?
? ?return sum
2018-01-20
1. ? sum() 是求和函數
? ? ? print sum([1, 3]) ?打印出來的結果就是4
2. ? i * i for i in L 是列表生成式
? ? ?比如 i * i for i in[1, 2, 3] 就產生了一個新的列表 [1, 4, 9]
再接著綜合以上的兩個 ? sum([i * i for i in L])就是對產生的新的列表的求和
3.
? ?sum = sum + x * x ? ?
? 這么解釋:如果sum開始為0,x是列表L的元素,比如L為【1, 2, 3】,那么第一次循環,sum 初始0, sum被賦值為0 + x * x=0 + 1 * 1 = 1,第二次循環,sum被賦值為1 + 2 * 2 = 5,第三次循環,sum被賦值為5 + 3 * 3=
14,循環結束,sum = 14