Python,在列表列表中比较第一个列表的第一个元素和第二个lis的第一个元素

2024-05-13 21:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有这个:

a = [[4, 8], [5, 6, 9, 10], [13]]

我想得到两者之间的差(减):

^{pr2}$

然后转到8:

8 - 5 = a[0][1] - a[1][0]

8 - 6 = a[0][1] - a[1][1]

...

以此类推

有什么想法吗?在

编辑:其他比较如下:

5 - 13 = a[1][0] - a[2][0]

6 - 13 = a[1][1] - a[2][0]

9 - 13 = a[1][2] - a[2][0]

10 - 13 = a[1][3] - a[2][0]

因为这是倒数第二的列表,所以它就停止了。在

我试图实现Quine-McCluskey方法来最小化逻辑表达式。在


Tags: 方法编辑列表表达式逻辑quine倒数mccluskey
3条回答

像这样的事情可以满足你的需要

但我不知道你还需要什么样的迭代,因为这个问题很模糊。你用13做什么?在

>>> from itertools import product
>>> [i[0] - i[1] for i in product([4, 8], [5, 6, 9, 10])]
[-1, -2, -5, -6, 3, 2, -1, -2]

假设在完成a[0][1] - a[1][x]之后,您希望继续a[0][0] - a[2][0],然后最终也执行a[1][0] - a[2][0]等:

result = []
for i, sub_x in enumerate(a[:-1]):
    for sub_y in a[i+1:]:
        for x in sub_x:
            result.append([x - y for y in sub_y])

>>> result
[[-1, -2, -5, -6], [3, 2, -1, -2], [-9], [-5], [-8], [-7], [-4], [-3]]

作为列表理解:

^{pr2}$
    python 3.2
    a=[[4, 8], [5, 6, 9, 10], [13]] 
    [[x-y for x in a[i]for y in a[i+1]]for i in range(len(a)-1)]

    >>>[[-1, -2, -5, -6, 3, 2, -1, -2], [-8, -7, -4, -3]]

   another way:
    for i in range(len(a)-1):
          for v in a[i]:
              y.append(list(v-h for h in a[i+1]))

相关问题 更多 >