有很多方法可以获取相邻元素的差异并创建一个新的差异列表。例如given here。但是,我有太多的列表,我需要为每个列表创建差异列表。我不想一遍又一遍地写同样的东西。最短(和/或)有效的方法是什么?
例如,假设我有list 1、list 2、...、listn,并且我想创建d_list1、d_list2、...、d_listn。其中d_list是由list 1 [i+1]-list 1 [i]创建的列表。这同样适用于d_list2,其中元素是list 2 [i+1]-list 2 [i]。
有很多方法可以获取相邻元素的差异并创建一个新的差异列表。例如given here。但是,我有太多的列表,我需要为每个列表创建差异列表。我不想一遍又一遍地写同样的东西。最短(和/或)有效的方法是什么?
例如,假设我有list 1、list 2、...、listn,并且我想创建d_list1、d_list2、...、d_listn。其中d_list是由list 1 [i+1]-list 1 [i]创建的列表。这同样适用于d_list2,其中元素是list 2 [i+1]-list 2 [i]。
1条答案
按热度按时间e0uiprwp1#
把你所有的列表放在一个列表列表中,然后用一个偏移量把它们压缩在一起,这样你就给予了一对列表,然后压缩它们并减去:
这将为您提供一个差异列表:
如果你真的有很多列表,使用Numpy可能是值得的,它有一个
diff
函数:给予:
根据注解编辑
要在另一个轴上求diff,不需要外部zip,只需要内部zip:
给予:
在Numpy中,只需更改轴:
它会产生与Numpy数组相同的结果: