Печать списка с заданной шириной в python - PullRequest
0 голосов
/ 12 сентября 2011

быстрый и, надеюсь, простой вопрос.

Допустим, у меня есть переменная, равная числовому значению ширины

т.е. размер_x = 50

Я хочу напечатать список, перенесенный на ширину 50 элементов. Как мне это сделать?

1 Ответ

4 голосов
/ 12 сентября 2011

догадка 1 : выводить строки, содержащие только элементы size_x исходного списка

for i in range(len(mylist)/size_x):
    print(mylist[i*size_x:(i+1)*size_x])

угадайте 2 : новый список, элементы которого являются строками, состоящими только из символов size_x

newlist = []
for i in range(len(mylist)/size_x):
    newlist.append(''.join(mylist[i*size_x:(i+1)*size_x]))

вывод нового списка «угадай 2» на экран быстрее, чем первое предположение:

print('\n'.join(newlist))

(также обратите внимание, что до Python 3 вместо range() можно использовать xrange(), который генерирует i-значения «на ходу» вместо создания целого списка индексов. Python 3 выполняет этот стандарт с range())

пример

mylist = list('hello this is supposed to be a long line')
size_x=5
for i in range(len(mylist)/size_x):
    print(mylist[i*size_x:(i+1)*size_x])

['h', 'e', 'l', 'l', 'o']
[' ', 't', 'h', 'i', 's']
[' ', 'i', 's', ' ', 's']
['u', 'p', 'p', 'o', 's']
['e', 'd', ' ', 't', 'o']
[' ', 'b', 'e', ' ', 'a']
[' ', 'l', 'o', 'n', 'g']
[' ', 'l', 'i', 'n', 'e']

newlist = []
for i in range(len(mylist)/size_x):
    newlist.append(''.join(mylist[i*size_x:(i+1)*size_x]))
print('\n'.join(newlist))

hello
 this
 is s
uppos
ed to
 be a
 long
 line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...