我想知道在Python中,将一个字符串(如"abcdefghijklmnopqrstuvwxyz"拆分为一组2)的最佳方法是什么。
或者分成3组:把字符串分成["ab", "bc", "cd", ... "yz]
谢谢!

最佳答案

这是一个适合任何人的

>>> from itertools import tee, izip, islice
>>> chunksize = 2
>>> s = 'abcdefghijklmnopqrstuvwxyz'
>>> t = tee(s, chunksize)
>>> for i, j in enumerate(t):
...  next(islice(j, i, i), None)
...
>>> ["".join(k) for k in izip(*t)]
['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi', 'ij', 'jk', 'kl', 'lm', 'mn', 'no', 'op', 'pq', 'qr', 'rs', 'st', 'tu', 'uv', 'vw', 'wx', 'xy', 'yz']

如果s始终是str,则这更为直接
>>> [s[i: i + chunksize] for i in range(len(s) + 1 - chunksize)]
['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi', 'ij', 'jk', 'kl', 'lm', 'mn', 'no', 'op', 'pq', 'qr', 'rs', 'st', 'tu', 'uv', 'vw', 'wx', 'xy', 'yz']

关于python - 将字符串分成特定长度的组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11790311/

10-11 17:55