Skip to main content
 首页 » 编程设计

python之在列表中的列表之间找到减法的最大绝对值

2025年05月04日20txw1958

我有一个这样的列表:

l = [[8,7,6], [9,9,9], [4,5,9], [1,5,1]] 

我想找到两个连续列表之间元素相减的最大值。 示例:

在 [9,9,9] 和 [8,7,6] 之间 -> 最大值为 [1,2,3] -> 3

在 [4,5,9] 和 [9,9,9] 之间 -> 最大值为 [5,4,0] -> 5

在 [1,5,1] 和 [4,5,9] 之间 -> 最大值 [3,0,8] -> 8

然后我想要一个包含 [3,5,8] 的列表 由于我的代码必须与 numpy 的 1.6.1 版本兼容,所以我是这样做的:

new_l = [] 
for index, i in enumerate(l): 
    if index < len(l)-1: 
        t = [] 
        for jndex, j in enumerate(i): 
            t.append(l[index +1][jndex] - l[index][jndex]) 
 
    new_l.append(max([abs(number) for number in t])) 
new_l = new_l[:-1] 

有没有更好的方法?提前致谢

请您参考如下方法:

使用常规 Python,您可以使用 zip 两次列表理解:

L = [[8,7,6], [9,9,9], [4,5,9], [1,5,1]] 
 
res = [max(abs(i-j) for i, j in zip(*values)) for values in zip(L, L[1:])] 
 
[3, 5, 8]