2014-11-13 48 views
1

請幫我解析二維數組。 例如我有數組:解析二維數組到python字符串

arr = [['a1', 'a2', 'a3'],['b1', 'b2', 'b3']] 

和有循環,在它們中產生具有新的一個陣列的字符串和該一個兩維動陣列。

例如:

date = ['1 -', '2 -', '3 -'] 
string = "" 
for i in range(len(date)): 
    string = string + str(date[i]) + ... 

如何在這個循環中我可以把字符串值,如:

1 - a1,b1; 2 - a2,b2; 3 - a3,b3; 

感謝您的幫助

回答

4

你可以這樣做茨艾倫:

>>> ' '.join('{} {};'.format(a, ','.join(b)) for a, b in zip(date, zip(*arr))) 
'1 - a1,b1; 2 - a2,b2; 3 - a3,b3;' 

這裏我們首先使用拉鍊轉arr*

>>> x = zip(*arr) 
>>> x 
[('a1', 'b1'), ('a2', 'b2'), ('a3', 'b3')] 

現在我們可以用時間壓縮此獲得:

>>> y = zip(date, x) 
>>> y 
[('1 -', ('a1', 'b1')), ('2 -', ('a2', 'b2')), ('3 -', ('a3', 'b3'))] 

現在,我們可以簡單地通過這個數組循環,執行字符串格式化和str.join操作項目獲得:

>>> z = ['{} {};'.format(a, ','.join(b)) for a, b in y] 
>>> z 
['1 - a1,b1;', '2 - a2,b2;', '3 - a3,b3;'] 

現在我們需要做的是加入使用這些項目:

>>> ' '.join(z) 
'1 - a1,b1; 2 - a2,b2; 3 - a3,b3;' 
+0

感謝它的工作,但一個問題,如果我有不是兩個,而是幾個陣列在「改編」,併爲改變每次。 – user3731374

+0

exaple,當我把腳本其他日期我有: arr = [[''a1','a2','a3'],['b1','b2','b3'],['c1', 'c2','c3']] – user3731374

+0

謝謝!!你太棒了!!謝啦! – user3731374