Python 如何将2个列表中的元素迭代应用到新函数中?
假设我有两个列表,第一个列表的第I个元素对应于第二个列表的第I个元素。如何将两个列表中的元素迭代应用到不同的函数中Python 如何将2个列表中的元素迭代应用到新函数中?,python,list,iteration,user-defined-functions,Python,List,Iteration,User Defined Functions,假设我有两个列表,第一个列表的第I个元素对应于第二个列表的第I个元素。如何将两个列表中的元素迭代应用到不同的函数中 def GetLists(n): List1 = [] List2 = [] n = int(input("how many terms: ")) for i in range(1,n): val1 = float(input("what is val1: ")) val2 = float(input("what is
def GetLists(n):
List1 = []
List2 = []
n = int(input("how many terms: "))
for i in range(1,n):
val1 = float(input("what is val1: "))
val2 = float(input("what is the corresponding val2: "))
List1.append(val1)
List2.append(val2)
return List1, List2
def newfunc(ListA, ListB, var):
# take i-th elements from lists A and B where (a,b) are the i-th elements of A and B
# want output = sum(a * var ** b) for index in len(A) if len(A) == len(B)
做这件事最像蟒蛇的方式是什么?如果可能的话,我希望在不导入外部模块的情况下这样做
编辑:我检查了其他解决方案。“重复”回答需要导入模块;我试着不带它。另外,我正在尝试执行一个返回输出值而不是打印值的操作,这使得zip的使用复杂化,超出了重复答案中显示的级别
从列表A和B中选取第i个元素,其中(A,B)是A和B的第i个元素
如果len(a)=len(b),则len(a)中索引的想要输出=和(a*var**b)
这就是你要找的吗?它将把两个长度相同的列表压缩在一起,计算某个常量的
var
的f(a,b,i)=a[i]*var**b[i]
,并计算每个i
,其中0是在zip中查找a,b的(列表a,列表b):
?另外,请注意,您发布的内容与Python无关—大小写很重要。@jornsharpe哪部分不是Python(哪部分依赖于大小写)?请原谅我的无知,我还是个初学者。Def
->Def
,For
->For
。如果您是新手,请阅读教程。这是一个重复的,zip
不需要导入,只要有a
和b
就可以做任何你想做的事情。啊,我粗心的错误。我在用手机打字。我现在就编辑它。至于它的副本,“原件”需要导入itertools。它也会打印,不会对压缩的元素进行操作。这是一个不同于我所寻找的公式,但我应该能够将相同的原理应用到我的公式中。非常感谢。编辑:公式已更正,效果很好。@mikey有点困,误读了公式。我编辑的帖子中的公式正确吗?是的,它是正确的。我能问一下否决票是为了什么吗?我对你的答案投了赞成票,因为代码是有效的。一定是另外一个人。
def process(list_a, list_b, var):
if len(list_a) != len(list_b):
raise ValueError('Lists are not equal in length')
def combine():
for a, b in zip(list_a, list_b):
yield a * var ** b
return sum(combine())
print(process([5, 2, 3], [2, 2, 3], 10))
3300
def process(list_a, list_b, var):
if len(list_a) != len(list_b):
raise ValueError('Lists are not equal in length')
return sum(a * var ** b for a, b in zip(list_a, list_b))
print(process([1, 2, 3], [2, 2, 3], 10))