将字符串拆分为列表,其长度相等

时间:2014-03-26 09:35:34

标签: python string list split

我有一个字符串(没有空格),我需要将其拆分为具有相等长度项目的列表。我知道split()方法,但据我所知,这只是通过空格而不是通过长度分割。

我想做的是这样的事情:

string = "abcdefghijklmnopqrstuvwx"
string = string.Split(0 - 3)
print(string)

>>> ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx"]

我已经考虑过循环列表,但我想知道是否有更简单的解决方案?

4 个答案:

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

编辑:废话,这对空格无效。仍然在这里留下答案,因为我上次遇到你的问题,我实际上是在试图包装文本,所以也许其他人都有相同的。