2014-11-13 7 views
1

, пожалуйста, помогите мне разобрать двумерный массив. Например у меня есть массив:разбор двумерного массива на строку в python

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

и имеют цикл, в них было создание новой строки с одного массива и это один из двух demensional массив.

например:

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

Вы можете сделать что-то вроде Thos:

>>> ' '.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;'] 

Теперь все, что нам нужно сделать, это соединить эти элементы с помощью ' ':

+0

спасибо, что это работает, но вопрос, если у меня нет двух, но несколько массивов в «arr», и они менялись каждый раз. – user3731374

+0

exaple, когда я добавляю в скрипт другую дату, у меня есть: arr = [['a1', 'a2', 'a3'], ['b1', 'b2', 'b3'], ['c1', 'c2', 'c3']] – user3731374

+0

спасибо! ты обалденный!! Спасибо чувак! – user3731374

Смежные вопросы