快速且有希望的简单问题。
假设我有一个等于数值宽度值的变量
即:size_x = 50
我想打印列表,包装宽度为50个元素。我该怎么做?
答案 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