2015-12-06 42 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']]