一道有意思的Python小题目
- July 15th, 2010
- By Fising
- Write comment
最近刚学python,所以想加个群和大家一起讨论,也利于自己进步。结果进群时候,群主出了个题目:
用一行代码求两列表[5,7,9]和[2,8,3]下标对应项乘积之和。
刚开始我使用迭代计算的:
>>> num = 0
>>> for a, b in zip([5, 7, 9], [2, 8, 3]):
num += a * b
>>> num
但是显然不是群主想要的答案,人家不给开门,郁闷~~
于是继续钻研,终于写出来啦:
>>> sum([a * [2, 8, 3][[5, 7, 9].index(a)] for a in [5, 7, 9]])
结果: 93
群主指点:
sum(x*y for x,y in zip([5,7,9],[2,8,3]))
好强悍的Python !~
