从列表中打印重复数字和非重复数字的乘积

时间:2016-10-13 04:25:04

标签: list python-2.7

我是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.

3 个答案:

答案 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",它会干扰列表类型的内置名称。