Python如果一个列表中的字符总数超过X,则将该列表拆分为多个列表

2024-09-24 02:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的数据库对notes字段有1000个字符的限制(我想),我有一个脚本,它可以整理我上传到这个字段的大量数据。有时数据超过了允许的长度,无法上传。你知道吗

我的数据实体存储在一个列表中,因此如果我通过将列表转换为字符串来计算字符数,例如,如果字符数大于500,则将列表中最接近的条目拆分为500个字符。你知道吗

我开始用20来构建一个示例,但是我现在不确定如何得到最接近第20个字符的逗号,然后拆分列表(我想我只是通过创建一个新列表来完成这一部分,并且在新列表的每个项目中都有一个列表)

>>> 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']]

Tags: 数据字符串实体脚本数据库示例列表len
1条回答
网友
1楼 · 发布于 2024-09-24 02:20:31
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']]

相关问题 更多 >