代码之家  ›  专栏  ›  技术社区  ›  AlexW

python-如果列表中的字符总数超过x,则将列表拆分为多个列表

  •  0
  • AlexW  · 技术社区  · 6 年前

    我们的数据库对于一个Notes字段有1000个字符的限制(我认为),我有一个脚本,它整理我上传到这个字段的大量数据。有时数据超出了允许的长度,无法上载。

    我的数据实体存储在一个列表中,所以我认为如果我通过将列表转换为字符串来计算字符数,例如,如果字符大于500,请将列表的最近条目拆分为500个字符。

    我开始用20来构建一个样本,但我现在不确定如何得到最接近20个字符的逗号,然后拆分列表(ID图ID通过创建一个新列表来完成这部分工作,在新列表的每个项目中都有一个列表)

    >>> d = ['asdasda','2g45hh4gq3g','093jfanasuqh','90DAS82hs']
    >>> len(d)
    4
    >>> len(str(d))
    55
    >>> results = []
    >>> if len(str(d)) > 20:
    ...
    

    所需输出样本如下: 本例中的示例输出如下所示,因为每个字符串中的20个字符限制在这两个字符串的第二个列表项下

    [['asdasda','2g45hh4gq3g'],['093jfanasuqh','90DAS82hs']]
    

    如果列表中的某个项目超过20个字符,则如下所示

    [['asdasda','2g45hh4gq3g'],['093jfanaiamlongerthan20suqh'],['90DAS82hs']]
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Adelina    6 年前
    d = ['asdasda', '2g45hh4gq3g', '093jf10100100ffdgfdgfdfdgfdgfdganasuqh', '90DAS82hs']
    n = 20
    new_list = []
    for i in range(0, len(d)):
        if i < 1:
            new_list.append([d[i]])
            continue
        if (len(d[i]) + len("".join(new_list[len(new_list)-1]))) < n :
            new_list[len(new_list)-1].append(d[i])
        else:
            new_list.append([d[i]])
    print(new_list)
    

    输出:

    [['asdasda', '2g45hh4gq3g'], ['093jf10100100ffdgfdgfdfdgfdgfdganasuqh'], ['90DAS82hs']]