【发布时间】:2017-01-09 08:43:44
【问题描述】:
假设我有 2 个列表,其中第一个列表的第 i 个元素对应于第二个列表的第 i 个元素。如何迭代地将 2 个列表中的元素应用到不同的函数中?
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)
最pythonic的方法是什么?如果可能的话,我想这样做而不导入外部模块。
编辑:我检查了其他解决方案。 “重复”答案需要导入模块;我试图不这样做。此外,我正在尝试执行返回输出而不是打印值的操作,这使 zip 的使用复杂化,超出了重复答案中显示的级别。
【问题讨论】:
-
您在寻找
for a, b in zip(ListA, ListB):吗?另外,请注意,您发布的不是 Python - 大小写很重要。 -
@jonrsharpe 哪一部分不是python(哪一部分取决于大小写)?请原谅我的无知,我还是个初学者。
-
Def->def,For->for。如果您是新手,请阅读教程。这是重复的,zip不需要导入,您可以使用a和b做任何您想做的事情。 -
啊,我的粗心错误。我在手机上打字。我现在将对其进行编辑。
-
至于复制,“原版”需要导入itertools。它还打印并且不对压缩元素执行操作。
标签: python list iteration user-defined-functions