[问题] 简单面试问题

楼主: 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