Python 在两个列表中查找更改的行或新行

Python 在两个列表中查找更改的行或新行,python,list,search,iteration,python-2.4,Python,List,Search,Iteration,Python 2.4,我有两个列表,我称之为旧行和新行 每一行正好是30个项目的列表。每个列表中可能有大量(未知)行。这两个列表可能包含不同数量的行 [ [row1_item1, row1_item2... row1_item30], [row2_item1, row2_item2... row2_item30], .... [rowN_item1, rowN_item2... rowN_item30] ] 其中N大且可变 我想做的是比较旧行和新行,并创建一个“显著差异”列表-我只对行之间的大约10个

我有两个列表,我称之为旧行新行

每一行正好是30个项目的列表。每个列表中可能有大量(未知)行。这两个列表可能包含不同数量的行

[ [row1_item1, row1_item2... row1_item30], 
  [row2_item1, row2_item2... row2_item30],
  ....
  [rowN_item1, rowN_item2... rowN_item30] ]
其中N大且可变

我想做的是比较旧行新行,并创建一个“显著差异”列表-我只对行之间的大约10个项目感兴趣。我已经有一个函数,它只比较两行中的那些项目

所以我试了一下:

   changes = []
   for o, n in izip_longest(old_rows, new_rows):
      if not o:
         changes.append(output_row(None, n))
         continue
      if not n:
         continue
      if significant_differences(o, n):
         changes.append(output_row(o, n))
令人恼火的是,这需要在Python2.4中工作,因此izip_longest已经过时。此外,由于无法解释的下一个不是2.4友好型,因此无法工作

理想的情况是寻找一些pythonic和快速使用生成器来处理潜在的非常大的列表

tuple(map(next, iterators)) 
可以改为

tuple(i.next() for i in iterators) 

对于Py
tuple(map(next,iterators))
可以更改为
tuple(i.next()表示iterators中的i)
对于Py,感谢您的第一行解决了问题。methodcaller显然是在2.6中引入的。哦,好吧,我会把它作为一个答案提交给你,如果它有效的话,你可以接受它。