列出到不同的输出

时间:2015-02-20 20:10:36

标签: list

我正在使用python进行小型结构操作,并且有一些问题。

目前我的输出是以下数据。

  [['a', ['b', 'c'], ['d', 'e']], ['h', ['i'], ['j']]]

我想进入下面的这个结构,但我的数据结构有点错误。每个列表可能有多个列表具有不同的条目。

  (a, b, a, d), (a, c, a, e), (h, i, h, j)

最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

这是一个快速的:

from itertools import product, izip

data = [['a', ['b', 'c'], ['d', 'e']], ['h', ['i'], ['j']]]

result = []
for d in data:
    first = d[0]
    for v in izip(*d[1:]):
        tmp = []
        for p in product(*[first, v]):
            tmp.extend(p)
        result.append(tuple(tmp))

print result

输出:

[('a', 'b', 'a', 'd'), ('a', 'c', 'a', 'e'), ('h', 'i', 'h', 'j')]