列出Python的元组

时间:2015-12-06 22:39:48

标签: python arrays tuples

我有这样的元组

rows = ((1L, 100000L, 'logo', '0'), (2L, 100000L, 'menu', '0'))

我想把它变成这个

[[1L, 100000L, 'logo', '0'], [2L, 100000L, 'menu', '0']]

这是我正在尝试的

for idx, val in enumerate(rows):
    print list(rows[idx])

并且

for idx, val in enumerate(rows):
     print list(val)

但是既没有打印出来也没有错误。它只是没有做任何事情。我知道变量rows具有此值,因为我在考虑循环之前将其打印出来。

如何将元组转换为数组数组?

3 个答案:

答案 0 :(得分:3)

试试这个:

list(map(list, rows))

内置list将任何内容转换为可迭代的列表,即您可以为其编写for循环。 map将函数list应用于元组内的元组。

另一种选择是嵌套列表理解:

[[x for x in t] for t in rows]

列表推导基本上是一行循环。它们只能包含表达式。 "正常"循环可以包含语句,通常更适合多行解决方案。

答案 1 :(得分:0)

怎么样:

new_rows = []
for i in rows:
    rows.append(list(i))

答案 2 :(得分:0)

这似乎对我有用:

>>> rows = ((1L, 100000L, 'logo', '0'), (2L, 100000L, 'menu', '0'))
>>> [list(x) for x in rows]
[[1L, 100000L, 'logo', '0'], [2L, 100000L, 'menu', '0']]