我在这里看到了一些关于如何将Python列表拆分为how to split an iterable in constant-size chunks这样的块的文章。 大多数帖子处理的是划分块或将列表中的所有字符串连接在一起,然后根据常规的切片例程进行限制。在
然而,我需要在角色限制的基础上执行类似的操作。如果你有一个句子列表,但不能截断列表中的任何片段。在
我可以在这里写出一些代码:
def _splicegen(maxchars, stringlist):
"""
Return a list of slices to print based on maxchars string-length boundary.
"""
count = 0 # start at 0
slices = [] # master list to append slices to.
tmpslices = [] # tmp list where we append slice numbers.
for i, each in enumerate(stringlist):
itemlength = len(each)
runningcount = count + itemlength
if runningcount < int(maxchars):
count = runningcount
tmpslices.append(i)
elif runningcount > int(maxchars):
slices.append(tmpslices)
tmpslices = []
count = 0 + itemlength
tmpslices.append(i)
if i==len(stringlist)-1:
slices.append(tmpslices)
return slices
输出应返回如下内容: 切片为:[[0,1,2,3,4,5,6],[7,8,9,10,11,12,13],[14,15,16,17,18,19,20]] (每个数字引用stringlist中的一个项)
所以,当我迭代这个列表时,我可以使用类似“.join([item for item in each])在一行打印0,1,2,3,4,5,6,在另一行打印7,8,9,10,11,12,13。有时,一个列表可能只有2个条目,因为这两个条目都很长(总计不超过380个字符或其他字符)。在
我知道这是一个很糟糕的代码生成器。我只是不知道该怎么做。在
谢谢。在
这样的事情应该行得通
另请参见textwrap模块
这只是一句话。希望它有用
同时:
^{pr2}$相关问题 更多 >
编程相关推荐