在具有最大行大小的多行上有效地连接字符串列表
Joining a list of strings efficiently over multiple lines with a maximum linesize
我正在寻找一种从一大串字符串中提取线条的方法。
字符串长度可以从 4 个字符到 20 个字符。
行大小最大值为 255 个字符。
字符串应该用逗号+space分隔(当然应该算作2个丢失的字符)
我想尽可能高效地填充行,并尝试尽可能长时间地使用所有 255 个字符。
字符串的顺序无关紧要。
然后,我想要 return 所有这些连接线的列表。
我知道基本的:
', '.join(my_list_of_strings)
然后拆分最多不超过 255 个字符,但这不是我需要的效率。
如果有好的 CSV 解决方案,我也接受(只是逗号分隔的字符串,最大行大小为 255)
编辑:
Textwrap 可以做到这一点,但没有我想要的那么智能:
将我的问题文本作为字符串和 20char 宽度:
print textwrap.fill(my_text, width=20)
I'm looking for a
way to make lines
out of a big list of
strings. String
length could be from
4 characters up to
20. The line size
maximum is 255
characters.
我要的是这个:
I'm looking for a to
way make lines a big
out of list of could
strings. String from
length be characters
4 up to 20. The line
size maximum is 255
characters.
没有太多复杂性的贪婪方法:
1.字符串按长度排序,最长在前
2. 从前面开始添加字符串,直到超过 255
3. 按长度手动选择((二进制-)搜索)一个字符串,使您尽可能接近
尽可能 255
4. 仍然不完全在 255:删除最后添加的字符串并重复 *3.
5.(可选)如果没有字符串让您恰好达到 255,请搜索 2 (3, ...) 字符串的组合,让您到达那里.
6. 重复 1-5 直到不再有字符串
我正在寻找一种从一大串字符串中提取线条的方法。
字符串长度可以从 4 个字符到 20 个字符。
行大小最大值为 255 个字符。
字符串应该用逗号+space分隔(当然应该算作2个丢失的字符)
我想尽可能高效地填充行,并尝试尽可能长时间地使用所有 255 个字符。
字符串的顺序无关紧要。
然后,我想要 return 所有这些连接线的列表。
我知道基本的:
', '.join(my_list_of_strings)
然后拆分最多不超过 255 个字符,但这不是我需要的效率。
如果有好的 CSV 解决方案,我也接受(只是逗号分隔的字符串,最大行大小为 255)
编辑:
Textwrap 可以做到这一点,但没有我想要的那么智能:
将我的问题文本作为字符串和 20char 宽度:
print textwrap.fill(my_text, width=20)
I'm looking for a
way to make lines
out of a big list of
strings. String
length could be from
4 characters up to
20. The line size
maximum is 255
characters.
我要的是这个:
I'm looking for a to
way make lines a big
out of list of could
strings. String from
length be characters
4 up to 20. The line
size maximum is 255
characters.
没有太多复杂性的贪婪方法:
1.字符串按长度排序,最长在前
2. 从前面开始添加字符串,直到超过 255
3. 按长度手动选择((二进制-)搜索)一个字符串,使您尽可能接近 尽可能 255
4. 仍然不完全在 255:删除最后添加的字符串并重复 *3.
5.(可选)如果没有字符串让您恰好达到 255,请搜索 2 (3, ...) 字符串的组合,让您到达那里.
6. 重复 1-5 直到不再有字符串