2013-02-08 2 views
1

У меня есть вложенный список, который, например: A_board=[['0', '0'],['1', '1']]. И я хочу разделить этот вложенный список и получить результат, который, если я выберу результат печати, будет отображен: < 0 0 > < 1 1 >манипулировать списками python в строку типа я хочу

Я не уверен, как подойти к этому с помощью циклов, я сначала сделал матрицу в списке, делая:

boardWidth_a=len(A_board) 
listLength=len(board[0]) 

for q in range(0,boardWidth_a): 
    for x in range(0, listLength): 
     board1D.append(int(board[q][x])); 

с board1D быть [0, 0, 1, 1] теперь, что я могу сделать, чтобы board1D, чтобы превратить его в < 0 0 > < 1 1 >?

ответ

6

Кажется немного запутанным - вы можете не просто сделать:

>>> ' '.join('< {} {} >'.format(*items) for items in A_board) 
'< 0 0 > < 1 1 >' 

Для кортежей, адаптируют следующее:

>>> a = [ [0], [0], [0] ] 
>>> fmt = '< {} >'.format 
>>> from itertools import chain 
>>> fmt(' '.join(map(str, chain.from_iterable(a)))) 
'< 0 0 0 >' 
+0

спасибо Jon !! Мне интересно, как я могу добавить немного больше к этому, я хочу, чтобы добавить «' \ n'»прямо перед каждым < >, так как это:' <-----> \ п < 0 0 > \ п < 1 1 > \ п <-----> ' Как я вставить «' \ n' », используя тот же метод, который вы мне показали? – PhoonOne

+0

@Jenny Присоединиться к '' \ n'' вместо пространства будет наиболее логичным - иначе просто вставьте '\ n' в строку формата –

+0

Спасибо. Но как я могу сделать это гибким? Потому что, используя < {} {} >, он будет работать только для 2 кортежей, что, если у меня есть '[[0], [0], [0]]' и хочу сделать его в '< 0 >< 0 >< 0 >'? Прямо сейчас я должен вводить дополнительный '{}' каждый раз. – PhoonOne

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