[英]How to multiply all elements in a list with each other in python?
我试图将每个元素与其旁边的元素相乘,然后将它们加在一起。 (我必须使用for / while循环,因为这是我要解决的问题所需的条件)
C= [7,5,4,5,3] j = 0 for j in len(C): j += 1 answ = (int(C[0::j])*int(C[1::j])) print answ
我不断收到错误消息“ int对象不可迭代”,如果有人可以帮助我,我将不胜感激。
您可以将zip()
遍历列表,将各项相乘并在末尾取sum()
:
C = [7,5,4,5,3]
print(sum(x * y for x, y in zip(C, C[1:])))
# 90
您的方法存在很多问题。 首先,您尝试对for循环中的len(C)
值进行迭代。 相反,您想使用range(len(C))
因为这会返回一个从0到len(C)
的整数生成器,您可以对其进行迭代。 其次,我们不对Python中的循环变量进行更改,因为该变量在循环的每次迭代开始时都会被覆盖,因此任何更改都将被忽略。 第三,您要计算的answ
会产生错误,因为您试图将数组切片转换为整数。 您还向后索引它们。 您想要做的是:
sum(a * b for a, b in zip(C, C[1:]))
这将使您将列表中每个元素与其右边位置中的元素相乘的总和。 但是,这不考虑列表的边缘。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.