我有一个字符串(没有空格),我需要将其拆分为具有相等长度项目的列表。我知道split()
方法,但据我所知,这只是通过空格而不是通过长度分割。
我想做的是这样的事情:
string = "abcdefghijklmnopqrstuvwx"
string = string.Split(0 - 3)
print(string)
>>> ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx"]
我已经考虑过循环列表,但我想知道是否有更简单的解决方案?
答案 0 :(得分:13)
>>> [string[start:start+4] for start in xrange(0, len(string), 4)]
['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx']
即使最后一个字符少于4个字符,也能正常工作。
答案 1 :(得分:2)
怎么样:
>>> string = 'abcdefghijklmnopqrstuvwx'
>>> map(''.join, zip(*[iter(string)]*4))
['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx']
>>>
答案 2 :(得分:2)
或:
map(lambda i: string[i:i+4], xrange(0, len(string), 4))
答案 3 :(得分:-1)
使用textwrap
标准库模块:
>>> import textwrap
>>> textwrap.wrap('abcdefghijklmnopq', 4)
['abcd', 'efgh', 'ijkl', 'mnop', 'q']
编辑:废话,这对空格无效。仍然在这里留下答案,因为我上次遇到你的问题,我实际上是在试图包装文本,所以也许其他人都有相同的。