Itertools列表产品

时间:2016-12-13 12:56:48

标签: python iteration product itertools

我找到了这个功能,但我不想要

typedef static const char*(*myfn_t)(void);

const myfn_t functab[] = { &ram, &date };

我想在下面回答

A = [[1,2],[3,4]]
print list(product(*A))
[(1, 3), (1, 4), (2, 3), (2, 4)]

我该怎么办呢?

事实上,我不想在最终名单的原始列表中的同一个地方有一个号码。

我已经做到了:

[(1, 4),(2, 3)]

但它没有工作我只[2,3]回答......

2 个答案:

答案 0 :(得分:1)

我想也许你想要得到每个列和每行中包含1个项目的所有元组,就像在一个行列式计算中一样。如果是这样的话:

from itertools import permutations

def afficherListe(A):
    """A is a square matrix. Returns all tuples used in det(A)"""
    n = len(A)
    return [tuple(A[i][j] for i,j in enumerate(p)) for p in permutations(range(n))]

#tests:
A = [[1,2],[3,4]]
B = [[1,2,3],[4,5,6],[7,8,9]]
print(afficherListe(A))
print(afficherListe(B))

输出:

[(1, 4), (2, 3)]
[(1, 5, 9), (1, 6, 8), (2, 4, 9), (2, 6, 7), (3, 4, 8), (3, 5, 7)]

答案 1 :(得分:1)

[(a,b) for a in A[0] for b in A[1] if A[0].index(a)!=A[1].index(b)]

输入:

A = [[1, 2], [3, 4]]

Out put:

[(1, 4), (2, 3)]