2015-07-11 4 views
-1

Я написал CLI утилита в питона и у меня есть список с 1: M элементы списка дорожек, как: imggggДовольно печать Списки Python

Я хочу, чтобы отобразить список в более readable manner как:

[ 
(1, '/path/here'), ('path/here/again'), 
(2, 'a/different/path/here'), ('another/path/here') 
] 

или в формате table-like (например):

1 /path/here    path/here/again 
2 a/different/path/here  another/path/here 

Примечания, этот список может иметь, скажем, как 20 или более элементов списка.

Спасибо!

+0

Использование 'rjust (number_of_spaces)' –

+0

. Результат на скриншоте, похоже, отличается от структуры данных, чем введенный вами код. – TigerhawkT3

+0

Вы посмотрели https://docs.python.org/2/library /pprint.html? –

ответ

1

Для начала:

>>> mylist = [ 
... (1, '/path/here', 'path/here/again'), 
... (2, 'a/different/path/here', 'another/path/here') 
... ] 

Играть с join(), map() и str(), наряду с Python 3 хорошо print() функции:

>>> print(*('\t'.join(map(str, item)) for item in mylist), sep='\n') 
1  /path/here  path/here/again 
2  a/different/path/here another/path/here 

Или вы можете попробовать строку форматирования вместо join() и map():

>>> print(*(str(col) + '\t' + (len(item)*'{}').format(*(i.ljust(25) for i in item)) for col,*item in mylist), sep='\n') 
1  /path/here    path/here/again 
2  a/different/path/here another/path/here 

Вы также можете изучить модуль pprint.

+0

Как насчет версии Python 2? .. Я просто говорю, потому что OP не упомянул версию, которую он использует. –

+1

Эта часть тривиальна: вы просто '' \ n'.join() 'этот генератор или 'для строки в файле_генератора: строка печати'. – TigerhawkT3

+0

pprint - именно то, что я искал! Большое вам спасибо @ TigerhawkT3 – CodeTalk

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