Sri*_*aju 11 python string split
我有一个像这样的数字字符串 - digit = "7316717"
现在我想以这样的方式拆分字符串,使得输出一次是3位数的移动窗口.所以我得到了 -
["731", "316", "167", "671", "717"]
这种方法将如何?直截了当的方式是进行for循环和迭代.但我觉得一些内置的python字符串函数可以用更少的代码完成.知道任何这样的方法吗?
Sha*_*hin 12
该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
Run Code Online (Sandbox Code Playgroud)
用法示例:
>>> ["".join(x) for x in window("7316717", 3)]
['731', '316', '167', '671', '717']
Run Code Online (Sandbox Code Playgroud)
>>> s = "7316717"
>>> [s[i:i+3] for i in range(len(s)-2)]
['731', '316', '167', '671', '717']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2986 次 |
| 最近记录: |