2015-07-20 6 views
0
def formatWords(words): 
    result = "Word List:\tWord Count:\n" 
    for i in words: 
    result += i + ":\t" + str(words.count(i)) + "\n" 
    return result 

слова - это всего лишь массив строк.Формат вывода текста

Я должен получить выход

Desired Output

я получаю выход

enter image description here

Как форматировать строку, чтобы посмотреть, как первую картинку?

+0

Несколько дубликатов этого вопроса, например. http://stackoverflow.com/questions/19103052/python-string-formatting-columns-in-line –

ответ

1

Используйте метод строки ljust():

result += (i+':').ljust(20) + str(words.count(i)) + '\n' 

20 является общим размером этой строки, Дополняется однако многие пробела необходимы, чтобы в конечном итоге с таким размером.

0

Использование format функция.

result += "{:<20}{:<30}\n".format(i, words.count(i)) 
1

Пример 1:

row_format = "{:<15}" * 2 
rows = [('word list:', 'word_count'), 
     ('brown', 1), 
     ('dog', 1)] 
for row in rows: 
    print row_format.format(*row) 

выход:

word list:  word_count  
brown   1    
dog   1  

Пример 2:

row_format = "{:<15}{:^15}" 
rows = [('word list:', 'word_count'), 
     ('brown', 1), 
     ('dog', 1)] 
for row in rows: 
    print row_format.format(*row) 

выход:

word list:  word_count 
brown     1  
dog     1  

Format Specification Mini-Language дает более подробную информацию.