[問題] 簡單面試問題

作者: jkkert   2018-11-08 20:49:38
listA = [0,1,2,3,4]
listB = [0,1,2,3,4]
listC = [0,1,2,3,4]
計算 (elementA * elementB) ^ elementC 返回 listD (共五個值)
我只會用很蠢的for loop
想請問版上高手高階寫法該怎麼寫?
謝謝
作者: adrianshum (Alien)   2018-11-08 20:56:00
Zip 了再做 list comprehensionresult = [ (a*b)**c for a,b,c in zip(list_a, list_b, list_c) ] 之類
作者: djshen (djshen)   2018-11-08 21:36:00
面試也不用什麼高階寫法吧
作者: jason860421 (jason)   2018-11-08 21:36:00
用numpy的話(A*B)**C 就好了
作者: s860134 (s860134)   2018-11-08 22:48:00
沒分啥高階寫法 
作者: Mchord (Mchord)   2018-11-08 23:01:00
這跟我幫公司出的好像啊…
作者: s860134 (s860134)   2018-11-08 23:22:00
也可以用 reduce 來達成就是了
作者: mikapauli (桜花)   2018-11-09 06:33:00
list(map(int.__pow__,map(int.__mul__, listA, listB), listC))
作者: JinLime   2018-11-09 13:00:00
list(map(lambda a,b,c: (a*b)**c, listA,listB,listC))
作者: Angesi (小雲豹)   2018-11-10 08:51:00
無意義 因為第一元素 (0*0)^0為不定型 故其值不存在!抱歉~ 學藝不精 其值為1正確!可以參考https://reurl.cc/XWWae有興趣的人 可以把x^x微分 可微分一定連續且極值存在
作者: ijoeyshow (小修仔)   2018-11-12 11:08:00
[listA[i]*listB[i]*listC[i] for i in range(len(listA))]看錯哈哈 最後的運算子改成^吧

Links booklink

Contact Us: admin [ a t ] ucptt.com