Python在移动窗口中分割字符串
发布于 2021-01-29 18:23:42
我有一个数字这样的字符串- digit = "7316717"
现在,我想以这样的方式拆分字符串,即输出一次是3位数字的移动窗口。所以我得到-
["731", "316", "167", "671", "717"]
方法如何?简单的方法是放入for循环并进行迭代。但是我觉得一些内置的python字符串函数可以用更少的代码来做到这一点。知道这种方法吗?
关注者
0
被浏览
152
1 个回答
-
该itertools例子提供了
window
,不只是该函数:from itertools import islice def window(seq, n=2): "Returns a sliding window (of width n) over data from the iterable" " s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ... " it = iter(seq) result = tuple(islice(it, n)) if len(result) == n: yield result for elem in it: result = result[1:] + (elem,) yield result
用法示例:
>>> ["".join(x) for x in window("7316717", 3)] ['731', '316', '167', '671', '717']