你如何处理它们? 一个愚蠢的例子:让我们说我们有一个这样的列表
a = [[[1,2],[3,4]],[[5,6],[7,8]]]
我要打印
[1,2,3,4,5,6,7,8]
我提出的方法如下:
print [b[t] for b in [c[w] for c in a for w in xrange(len(c))] for t in xrange(len(b))]
我觉得这很难看。有没有更好的方法来获得相同的结果?
答案 0 :(得分:4)
x = [d for b in a for c in b for d in c]
或使用itertools.chain.from_iterable
:
import itertools
flatten = itertools.chain.from_iterable
x = list(flatten(flatten(a)))
答案 1 :(得分:0)
您希望展平列表以获取所有项目。我会尝试itertools.chain.from_iterable
这样做:
itertools.chain.from_iterable(itertools.chain.from_iterable(a)) # unpack the list twice
答案 2 :(得分:0)
Numpy也有效:
print list(np.array(a).flatten())
答案 3 :(得分:-1)
当然有更好的方法:
list(itertools.chain.fromiterable(a))