Python 将字符串拆分为一个列表,列表中的项目长度相等

Python 将字符串拆分为一个列表,列表中的项目长度相等,python,string,list,split,Python,String,List,Split,我有一个字符串(没有空格),我需要将其拆分为一个具有相同长度项的列表。我知道split()方法,但据我所知,它只通过空格而不是长度进行分割 我想做的是这样的: string = "abcdefghijklmnopqrstuvwx" string = string.Split(0 - 3) print(string) >>> ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx"] 我曾想过循环浏览列表,但我想知道是否有更简单的解决方案

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

我想做的是这样的:

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

>>> ["abcd", "efgh", "ijkl", "mnop", "qrst", "uvwx"]
我曾想过循环浏览列表,但我想知道是否有更简单的解决方案

>>> [string[start:start+4] for start in range(0, len(string), 4)]
['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx']
即使最后一篇文章少于4个字符,它仍然有效

PS:在Python 2中,应该使用
xrange()
而不是
range()

如何:

>>> string = 'abcdefghijklmnopqrstuvwx'
>>> map(''.join, zip(*[iter(string)]*4))
['abcd', 'efgh', 'ijkl', 'mnop', 'qrst', 'uvwx']
>>>
或:


使用标准库模块:

>>> import textwrap
>>> textwrap.wrap('abcdefghijklmnopq', 4)
['abcd', 'efgh', 'ijkl', 'mnop', 'q']

编辑:废话,这对空格不起作用。仍然将答案留在这里,因为上次我遇到你的问题时,我实际上是在尝试包装文本,所以可能其他人也有同样的问题。

完美,效果很好,现在我只需再等4分钟就可以接受答案了!可爱但浪费:字符串被分解成字符,然后重新组合。另外,如果字符串的长度不是4.xrange的倍数,则无法拾取最后一个字符。但是map+lambda并不明显比列表更清晰。…@m.wasowski您所指的问题需要一个迭代器,它略有不同。这在“Hi!\nOh!\nAh!”上失败。事实上,
textwrap.wrap()
是为包含单词的段落设计的。我刚刚注意到,很遗憾。
>>> import textwrap
>>> textwrap.wrap('abcdefghijklmnopq', 4)
['abcd', 'efgh', 'ijkl', 'mnop', 'q']