如何打破列表中的元组括号?
How to break the tuple brackets within a list?
我有一个数据列表:
[[], [], [(2, 3), (2, 7), (3, 2), (7, 2)], [(2, 3), (3, 2), (3, 7), (7, 3)], [], [], [], [(2, 7), (3, 7), (7, 2), (7, 3)], [], []]
我想去掉元组中的括号,这样 [(2, 3), (2, 7), (3, 2), (7, 2)]
就会变成 (2,3,2,7,3,2,7,2)
。
有快捷方式吗?
您要展平列表。在 python 中,您可以使用复合列表理解来做到这一点
data = [(2, 3), (3, 2), (3, 7), (7, 3)]
flattend = [item for lst in data for item in lst]
您可以使用 itertools.chain
:
In [6]: l = [[], [], [(2, 3), (2, 7), (3, 2), (7, 2)], [(2, 3), (3, 2), (3, 7), (7, 3)], [], [], [], [(2, 7), (3, 7), (7, 2), (7, 3)], [], []]
In [7]: [tuple(itertools.chain(*el)) for el in l]
Out[7]:
[(),
(),
(2, 3, 2, 7, 3, 2, 7, 2),
(2, 3, 3, 2, 3, 7, 7, 3),
(),
(),
(),
(2, 7, 3, 7, 7, 2, 7, 3),
(),
()]
我有一个数据列表:
[[], [], [(2, 3), (2, 7), (3, 2), (7, 2)], [(2, 3), (3, 2), (3, 7), (7, 3)], [], [], [], [(2, 7), (3, 7), (7, 2), (7, 3)], [], []]
我想去掉元组中的括号,这样 [(2, 3), (2, 7), (3, 2), (7, 2)]
就会变成 (2,3,2,7,3,2,7,2)
。
有快捷方式吗?
您要展平列表。在 python 中,您可以使用复合列表理解来做到这一点
data = [(2, 3), (3, 2), (3, 7), (7, 3)]
flattend = [item for lst in data for item in lst]
您可以使用 itertools.chain
:
In [6]: l = [[], [], [(2, 3), (2, 7), (3, 2), (7, 2)], [(2, 3), (3, 2), (3, 7), (7, 3)], [], [], [], [(2, 7), (3, 7), (7, 2), (7, 3)], [], []]
In [7]: [tuple(itertools.chain(*el)) for el in l]
Out[7]:
[(),
(),
(2, 3, 2, 7, 3, 2, 7, 2),
(2, 3, 3, 2, 3, 7, 7, 3),
(),
(),
(),
(2, 7, 3, 7, 7, 2, 7, 3),
(),
()]