好的,所以我得到了
形式的信息(('A', 'B', 'C'), ('D', 'E', 'F'), ('H', 'I', 'J'))
我希望将其转换为
[['A', 'B', 'C'], ['D', 'E', 'F'], ['H', 'I', 'J']]
最好/最简单的方法是什么?
答案 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))
。