我是python的新手。我试图从python列表中打印所有重复nos和非重复nos的产品的总和。举些例子 list = [2,2,4,4,5,7,8,9,9]。我想要的是sum = 2 + 2 + 4 + 4 + 9 + 9和product = 5 * 7 * 8.
答案 0 :(得分:0)
count
对此非常有用。 Sum是内置的,但没有内置"产品",因此使用reduce是最简单的方法。
from functools import reduce
import operator
the_sum = sum([x for x in list if list.count(x)>1])
the_product = reduce(operator.mul, [x for x in lst if lst.count(x)==1])
答案 1 :(得分:0)
使用for循环从列表中读取数字。创建一个变量并为其分配数字,读取另一个数字并使用if语句进行比较。如果它们是相同的总和,则它们就像sameNumSum + = sameNumSum否则将它们相乘。在for循环之前创建这两个变量并初始化它们。我刚给你算法,你可以把它改成你的代码。希望尽管有所帮助。
答案 2 :(得分:0)
有一些pythonic one liners可以做到这一点,但这里有一种你可能更容易理解的明确方式。
num_list = [2,2,4,4,5,7,8,9,9]
sum_dup = 0
product = 1
for n in num_list:
if num_list.count(n) == 1:
product *= n
else:
sum_dup += n
另外注意,不要在列表中输入名称" list",它会干扰列表类型的内置名称。