Split string into a list, with items of equal length
本问题已经有最佳答案,请猛点这里访问。
我有一个字符串(没有空格),需要将它拆分为一个具有相同长度的项的列表。我知道
我想做的是这样的事情:
1 2 3 4 5 | string ="abcdefghijklmnopqrstuvwx" string = string.Split(0 - 3) print(string) >>> ["abcd","efgh","ijkl","mnop","qrst","uvwx"] |
我考虑过循环浏览列表,但我想知道是否有一个更简单的解决方案?
1 2 | >>> [string[start:start+4] for start in xrange(0, len(string), 4)] ['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx'] |
即使最后一篇文章少于4个字符,它也能工作。
或:
1 | map(lambda i: string[i:i+4], xrange(0, len(string), 4)) |
怎么样:
1 2 3 4 | >>> string = 'abcdefghijklmnopqrstuvwx' >>> map(''.join, zip(*[iter(string)]*4)) ['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx'] >>> |
使用
1 2 3 | >>> import textwrap >>> textwrap.wrap('abcdefghijklmnopq', 4) ['abcd', 'efgh', 'ijkl', 'mnop', 'q'] |
编辑:废话,这对空间不合适。仍然把答案留在这里,因为上次我遇到你的问题时,我实际上是在尝试包装文本,所以其他人可能也有同样的问题。