如何使用列表作为参数运行函数?

时间:2014-11-05 02:07:37

标签: python

所以说我有两个清单,

a=[x,y,....z]b=[x1,y1,...z1]

以及具有这两个列表参数的函数:

def examplefunction(a,b)

我怎样才能使该函数使用列表a和b中的第一项,然后列出a和b中的第二项,直到列表的末尾? (并且每个列表具有相同数量的项目)

我会做类似的事情吗?

def main():
    for i in range(len(a)):
        examplefunction(a[i],b[i])

我是列表中的第1,第2,......第n项。

5 个答案:

答案 0 :(得分:2)

您可以使用zip同时访问2个列表项:

for firstlistitem,secondlistitem in zip(a,b):
    .....

答案 1 :(得分:1)

虽然不确定你要求的是什么,但是 您的示例函数如下所示:

def examplefunction(a,b):
    list_s = len(a)
    for i in range(list_s):
        item_a = a[i]
        item_b = b[i]

答案 2 :(得分:0)

您可以按索引访问项目,但user3的解决方案更优雅。

a = [1,2,3]
b = [4,5,6]
for index, value in enumerate(a):
    print value, b[index]

答案 3 :(得分:0)

[examplefunction(aa, bb) for (aa, bb) in zip(a,b)]

会生成结果列表,或使用()而不是[]来生成生成器。

答案 4 :(得分:0)

为了扩展user3的答案,我创建了一个快速演示函数来演示它的工作原理。

>>> def foo(a, b):
...     print('{} - {}'.format(a, b))
>>> lst
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> l
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> for a, b in zip(l, lst):
...     foo(a, b)
... 
10 - 1
9 - 2
8 - 3
7 - 4
6 - 5
5 - 6
4 - 7
3 - 8
2 - 9
1 - 10