排列可能不是正确的单词。
表示x = "123456"
。我希望我的代码输出['12','23','34','45','56']
。现在,我知道如何将其拆分为['12','34','56']
你只需要一个增量为1的范围
def split_into(values, n):
return [values[i:i + n] for i in range(len(values) - n + 1)]
x = "123456789"
print(split_into(x, 2)) # ['12', '23', '34', '45', '56', '67', '78', '89']
print(split_into(x, 3)) # ['123', '234', '345', '456', '567', '678', '789']
print(split_into(x, 4)) # ['1234', '2345', '3456', '4567', '5678', '6789']
print(split_into(x, 5)) # ['12345', '23456', '34567', '45678', '56789']
在Python 3.10中,看起来itertools.pairwise()
会做你想做的:
>>> from itertools import pairwise
>>> print(*map(''.join, pairwise("123456")))
以上只是一个模拟,因为我还没有3.10;-)在那之前,pairwise()
的文档提供了另一种选择:
from itertools import tee
def pairwise(iterable):
a, b = tee(iterable)
next(b, None)
return zip(a, b)
print(*map(''.join, pairwise("123456")))