最近刚学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 !~