2015-12-06 43 views
0

我有这样元组列出的Python

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

什么:

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

试试这个:

list(map(list, rows)) 

内置list转换成任何东西是可迭代的列表,即你可以写一个for循环吧。 map将函数list应用于元组内的元组。

的替代将是一个嵌套列表理解:

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

列表理解是一条线基本上循环。它们只能包含表达式。 “正常”循环可以包含语句,通常更适合多线解决方案。

0

这似乎为我工作:

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