试图将内部和外部元组转换为内部和外部列表

时间:2011-10-25 18:12:09

标签: python arrays list tuples

好的,所以我得到了

形式的信息
(('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))

我希望将其转换为

[['A', 'B', 'C'], ['D', 'E', 'F'], ['H', 'I', 'J']]

最好/最简单的方法是什么?

5 个答案:

答案 0 :(得分:5)

列表理解:

tpl = (('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))

lst = [list(x) for x in tpl]

答案 1 :(得分:4)

a = (('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))
print map(list, a)

打印

[['A', 'B', 'C'], ['D', 'E', 'F'], ['H', 'I', 'J']]

答案 2 :(得分:3)

>>> data = (('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))
>>> [list(tup) for tup in data]
[['A', 'B', 'C'], ['D', 'E', 'F'], ['H', 'I', 'J']]

答案 3 :(得分:2)

如果您知道结构只有两个级别,请尝试:

x = (('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))
y = [ list(t) for t in x ]

如果可能有更深的嵌套,你会想要递归 - 请参阅F.J的回答。

答案 4 :(得分:2)

这是一个针对任意数量的嵌套元组的简单递归解决方案:

>>> tup = (('A', ('B', 'C')), ('D', 'E', 'F', ('H', 'I', 'J')))
>>> listify = lambda x: map(listify, x) if isinstance(x, tuple) else x
>>> listify(tup)
[['A', ['B', 'C']], ['D', 'E', 'F', ['H', 'I', 'J']]]

对于Python 3,将map(listify, x)替换为list(map(listify, x))