根据项目的长度以块的形式分割python列表

根据项目的长度以块的形式分割python列表,第1张

概述我在这里看到一些关于如何将Python列表分成像how to split an iterable in constant-size chunks这样的块的好帖子.大多数帖子涉及分割块或将列表中的所有字符串连接在一起,然后根据正常的片段例程进行限制.但是,我需要根据字符限制执行类似的 *** 作.如果您有一个句子列表但不能截断列表中的任何切片.我能够在这里制作一些代码

我在这里看到一些关于如何将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([每个项目中的项目]”)在一行上打印0,6,7另一个是8,13.有时,列表可能只有2个项目,因为这两个项目中的每一个都很长(加起来不超过380个字符或其他).

我知道代码非常糟糕,我应该使用生成器.我只是不确定该怎么做.

谢谢.

最佳答案这样的事情应该有效

def _splicegen(maxchars,stringList):    """    Return a List of slices to print based on maxchars string-length boundary.    """    runningcount = 0  # start at 0    tmpslice = []  # tmp List where we append slice numbers.    for i,item in enumerate(stringList):        runningcount += len(item)        if runningcount <= int(maxchars):            tmpslice.append(i)        else:            yIEld tmpslice            tmpslice = [i]            runningcount = len(item)    yIEld(tmpslice)

另请参阅textwrap模块 总结

以上是内存溢出为你收集整理的根据项目的长度以块的形式分割python列表全部内容,希望文章能够帮你解决根据项目的长度以块的形式分割python列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存