Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建一个10个相互不重叠的数字的列表,并将它们相加_Python_List_Loops_Sum - Fatal编程技术网

Python 创建一个10个相互不重叠的数字的列表,并将它们相加

Python 创建一个10个相互不重叠的数字的列表,并将它们相加,python,list,loops,sum,Python,List,Loops,Sum,我应该写一个代码,要求用户输入10个数字,用这些数字创建一个列表,然后把它们全部加起来。我现在能做到这一点。但是,我不知道如何检查这些数字是否相互重叠。如果他们这样做,则不应将该号码添加到列表中 因此,我能够让程序运行,这样它要求一个数字10次。但是,在此之后,在生成总和时似乎出现语法错误 numberList = [] for i in range (0,10): number= int(input("Please enter a number: ")) numberList

我应该写一个代码,要求用户输入10个数字,用这些数字创建一个列表,然后把它们全部加起来。我现在能做到这一点。但是,我不知道如何检查这些数字是否相互重叠。如果他们这样做,则不应将该号码添加到列表中

因此,我能够让程序运行,这样它要求一个数字10次。但是,在此之后,在生成总和时似乎出现语法错误

numberList = []

for i in range (0,10):
    number= int(input("Please enter a number: "))
    numberList.append(number)
    total = sum(numberList)
总计=总和(数字列表)
TypeError:“int”对象不可调用


如果条件为“不在”,则只能在列表中添加新的数字。我在做求和运算时没有遇到任何错误。可能有总和缩进问题,请检查

numberList = []
for i in range (0,10):
    number= int(input("Please enter a number: "))
    if number not in numberList:
        numberList.append(number)

print "List formed: %s" %numberList
total = sum(numberList)
print "Sum of all elements in list: %d" %total
控制台:

Please enter a number: 1
Please enter a number: 2
Please enter a number: 3
Please enter a number: 4
Please enter a number: 5
Please enter a number: 1
Please enter a number: 2
Please enter a number: 3
Please enter a number: 4
Please enter a number: 5
List formed: [1, 2, 3, 4, 5]
Sum of all elements in list: 15

可以通过几种不同的方式从python列表中删除重复项。对于需要保持顺序的列表,最常见的是将其转换为
OrderedDict
,因为
字典
键必须是唯一的,它不会为重复的元素创建额外的键

因为我们是在寻找数字的总和,所以顺序并不重要,所以我们可以使用一个内置方法
set()
,将任何
iterable
转换为
set
(本质上,必须有唯一的元素)

如果需要将其转换为列表,您可以在以后将其转换回列表:

numberList = list(set(numberList))
reduce
map
filter
是任何编程语言中都需要学习的最重要的函数。对于这个用例,
reduce()
非常完美,它执行滚动计算

from functools import reduce
final_sum = reduce((lambda x, y: x + y), numberList)

是否有名为
sum
的变量?sum变量可能已重载。sum是python中的内置函数。您可能已经通过创建同名变量更改了名称sum的定义。为什么不使用内置的
sum
而不是
reduce
?更糟糕的是,您将
sum
函数替换为
int
,这似乎是问题所在。OP重载了
sum
方法,这实际上是问题所在,而不是结果是
int
。用
int
替换
sum
方法是什么意思?
sum
函数返回一个
int
值。在使用
sum=…
后,
sum
值会反弹到int值。如果此时尝试使用
sum(numberList)
值,您将从操作中得到一个错误,
int
值不可调用抱歉,您的第一条消息不清楚,变量的命名有问题。我会换个职位,一切都好:)