您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将字符串拆分为固定长度的块并在Python中使用它们的最佳方法是什么?

将字符串拆分为固定长度的块并在Python中使用它们的最佳方法是什么?

一种解决方案是使用此功能

def chunkstring(string, length):
    return (string[0+i:length+i] for i in range(0, len(string), length))

函数使用生成器理解来返回生成器。生成器返回从0 +块的长度的倍数到块的长度+块的长度的倍数切片的字符串。

您可以像列表,元组或字符串-那样遍历生成for i in chunkstring(s,n): ,或使用将其转换为列表(例如)list(generator)生成器比列表更有效地使用内存,因为生成器可以按需生成元素,而不是一次生成所有元素,但是它们缺少某些功能,例如索引。

生成器最后还包含任何较小的块:

>>> list(chunkstring("abcdefghijklmnopqrstuvwxyz", 5))
['abcde', 'fghij', 'klmno', 'pqrst', 'uvwxy', 'z']

用法示例:

text = """This is the first line.
           This is the second line.
           The line below is true.
           The line above is false.
           A short line.
           A very very very very very very very very very long line.
           A self-referential line.
           The last line.
        """

lines = (i.strip() for i in text.splitlines())

for line in lines:
    for chunk in chunkstring(line, 16):
        print(chunk)
python 2022/1/1 18:42:59 有301人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶