我已经阅读了几个关于问题的帖子"如何压缩列表列表...."。我提出了这个解决方案:
points = [[[(6,3)],[]],[[],[]]]
from itertools import chain
list(chain.from_iterable(points))
但是我的列表看起来有时像这样:
[[[(6,3)],[]],[[],[]]]
不确定它是否正确,但我希望你理解。
关键是leaf元素是一个元组,当调用上面的代码时,它也会删除元组并返回[6,3]
。
那么我该怎么办才能获得[(6,3)]
?
答案 0 :(得分:1)
这个怎么样,
lists = [[[(6,3)],[]],[[],[]]]
r = [t for sublist in lists for l in sublist for t in l]
print(r)
# [(6, 3)]
答案 1 :(得分:0)
也许它不是最好的解决方案,但它运作良好:
def flat(array):
result = []
for i in range(len(array)):
if type(array[i]) == list:
for j in flat(array[i]):
result.append(j)
else:
result.append(array[i])
return result
print flat([[[(6,3)],[]],[[],[]]] )
结果是:
>>>
[(6, 3)]
>>>