如何将列表中两个附近的元素相乘?

时间:2019-05-30 20:41:38

标签: python list sum multiplication

我有一个如下列表:

a = [ 1, 2 , 3, 4, s, s+1] 

我要保留前两个元素,然后将其余两个元素相乘。 结果如下:

b = [1, 2, 12, s**2 + s]

我知道我是否想要求和,我可以使用下面的代码:

b = [*a[:2], *map(sum, (a[i: i + 2] for i in range(2, len(a), 2)))]
print (b)

,我将得到以下结果:[1, 2, 7, 2*s + 1] 但是,我不知道如何获得结果。 谢谢

3 个答案:

答案 0 :(得分:3)

这是一种类似的方法,但是将itertools.starmapoperator.mul结合使用:

classifier = tf.contrib.estimator.add_metrics(classifier, compute_metrics)

答案 1 :(得分:2)

定义自定义乘法功能:

def mul(lst):
    s = 1
    for x in lst:
        s *= x
    return s

[*a[:2], *map(mul, (a[i: i + 2] for i in range(2, len(a), 2)))]

答案 2 :(得分:1)

也可以使用s1.intersection(s2) # {'hamburger', 'kebab'}

zip