Python 如何将函数应用于一个列表,一次应用两个列表?

Python 如何将函数应用于一个列表,一次应用两个列表?,python,list,apply,sublist,Python,List,Apply,Sublist,我有这样一个列表: all_lists = [list0, list1, list2, list3, ....., listn] 还有一个类似这样的函数,它从这个all_列表中获取两个参数 def function(list0, list1): do stuff 通过将索引移动1直到到达listn,函数将继续从所有_列表中获取参数 有没有一种有效的方法? 谢谢 zip使用列表本身并在循环中传递参数 for l1, l2 in zip(all_lists[:-1], all_lists

我有这样一个列表:

all_lists = [list0, list1, list2, list3, ....., listn]
还有一个类似这样的函数,它从这个all_列表中获取两个参数

def function(list0, list1):
    do stuff
通过将索引移动1直到到达listn,函数将继续从所有_列表中获取参数

有没有一种有效的方法?
谢谢

zip
使用列表本身并在循环中传递参数

for l1, l2 in zip(all_lists[:-1], all_lists[1:]): # or zip(all_lists, all_lists[1:])
    function(l1, l2)

MVCE:


如果需要所有可能的组合,可以使用itertools方法

>>> import itertools
>>> a = [[1,2],[2,3],[3,4]]
>>> 
>>> for _lst in itertools.combinations(a, 2):
...      print _lst
... 
([1, 2], [2, 3])
([1, 2], [3, 4])
([2, 3], [3, 4])
对于您的代码

all_lists = [list0, list1, list2, list3, ....., listn]

for l1,l2 in itertools.combinations(all_list , 2):
    print l1,l2
    # do stuff

您不需要
[:-1]
,因此充其量它是一个VCE:-P@StefanPochmann来自Python的禅宗:
显式优于隐式。
…:嗯,这只是第二个。第一个是美丽胜于丑陋。@StefanPochmann ahaha接受了挑剔。两个参数表示所有组合,如
函数(list0,list1)
函数(list0,list2)
all_lists = [list0, list1, list2, list3, ....., listn]

for l1,l2 in itertools.combinations(all_list , 2):
    print l1,l2
    # do stuff