Python列表算法
我有一个整数列表,例如:Python列表算法,python,list,Python,List,我有一个整数列表,例如:[30,21,32,32,41,20,21,32,21,20] 我有一个变量X,X的值在列表的范围内。 我怎样才能找到列表中所有元素的总和为X的数目。 例如,如果x为4,我希望:30+21+32+32另一种方法是使用itertools中的函数: >>> import itertools >>> sum(itertools.takewhile(lambda x: x<5, range(10))) 10 导入itertools >>
[30,21,32,32,41,20,21,32,21,20]
我有一个变量X,X的值在列表的范围内。
我怎样才能找到列表中所有元素的总和为X的数目。
例如,如果x为4,我希望:
30+21+32+32
另一种方法是使用itertools中的函数:
>>> import itertools
>>> sum(itertools.takewhile(lambda x: x<5, range(10)))
10
导入itertools
>>>sum(itertools.takewhile(λx:x>>l=[1,2,3,4,5,6,7,8,9]
>>>x=5
>>>总和(itertools.takewhile(λi:i>>> sum(zip(*(itertools.takewhile(lambda i: i[0]<x-1, enumerate(l))))[1])
10
>>sum(zip(*(itertools.takewhile(lambda i:i[0])如果要对前x个元素求和:
>>> l = [1,2,3,4,5,6,7,8,9]
>>> x = 5
>>> result = sum(l[:x])
>>> result
15
我的回答可能效率不高,但我认为它非常简单。如果你是初学者,你应该了解执行任务的常用方法是定义函数
函数需要名称并且通常需要一个或多个参数,在本例中,sum\u直到
是名称,l
和n
是参数
根据定义,有一些代码执行l
和n
的一般值的任务。最终,函数return
s计算结果,这里是语句return sum
请注意函数定义末尾注释的#return sum
。您应该尝试控制在异常情况下要执行的操作,这里是在l
中找不到n
时我们要执行的操作。一个选项是返回l
中所有数字的总和,另一个选项是返回无法执行的值一个总结,第二个正是我的选择
def sum_until(l,n):
"returns the sum of the numbers in l that occur before the appearance of n"
sum = 0:
for num in l:
if num == n:
return sum
sum = sum + num
# return sum
return None
现在,我们必须使用函数。这是通过调用函数来实现的,也就是说,调用函数的名称并告诉它需要对哪些实际值进行求和运算:
print(sum_until([2,4,6,8,5,10,12], 5))
print(sum_until([2,4,6,8,5,10,12], 3))
输出
“before”是指x
在列表中的位置吗?好的,我举了一个不好的例子,我会重写它,对不起。谢谢,这个答案对我来说最有意义,而且很有效:)不,不是。他想对前X个元素求和,包括X。看看他最后的例子。我错了。OP现在已经改变了他们的问题两次,并且不断改变他们想要的结果。没关系。但我希望我没有因此而被否决。
print(sum_until([2,4,6,8,5,10,12], 5))
print(sum_until([2,4,6,8,5,10,12], 3))
20
None