在python中打印设置宽度列表

时间:2011-09-11 20:28:20

标签: python parsing list

快速且有希望的简单问题。

假设我有一个等于数值宽度值的变量

即:size_x = 50

我想打印列表,包装宽度为50个元素。我该怎么做?

1 个答案:

答案 0 :(得分:4)

猜测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]))

在屏幕上一次打印'guess 2'的新列表比第一次猜测更快:

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

(另请注意,在python 3之前,可以使用xrange()代替range(),它会在运行中生成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