Python列表算术

时间:2014-11-12 13:26:28

标签: python list

我有一个整数列表,例如:[30,21,32,32,41,20,21,32,21,20] 我有一个X变量,X的值在列表范围内。 如何找到列表中所有元素的总和为X的数量。 例如,如果x为4,我希望:30+21+32+32

3 个答案:

答案 0 :(得分:1)

另一种方法是使用itertools中的takewhile函数:

>>> import itertools
>>> sum(itertools.takewhile(lambda x: x<5, range(10)))
10

在你的情况下:

>>> l = [1,2,3,4,5,6,7,8,9]
>>> x = 5
>>> sum(itertools.takewhile(lambda i: i < x, l))
10

如果你想要到第5个元素,可以使用枚举和zip:

>>> sum(zip(*(itertools.takewhile(lambda i: i[0]<x-1, enumerate(l))))[1])
10

答案 1 :(得分:1)

如果你是初学者,你应该知道执行任务的常用方法是来定义一个函数

函数需要一个名称,通常需要一个或多个参数,在本例中sum_until是名称,ln是参数。

根据定义,有一些代码可以执行ln的常规值的任务。函数return最终是计算的结果,这里是语句return sum

注意函数定义末尾的注释# return sum。您应该尝试控制在特殊情况下要执行的操作,此处在n未找到l时我们要执行的操作。一个选项是返回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))

输出

20
None

答案 2 :(得分:0)

如果要对x个第一个元素求和:

>>> l = [1,2,3,4,5,6,7,8,9]
>>> x = 5
>>> result = sum(l[:x])
>>> result
15

我的回答可能效率不高,但我很直接。