我有这样的元组
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
具有此值,因为我在考虑循环之前将其打印出来。
如何将元组转换为数组数组?
答案 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']]