pythonic方法将字符串拆分成可变长度的块?

时间:2016-10-27 08:05:41

标签: python

例如,字符串0123456789 输入1,2,6,1将是:

[0,12,345678,9]

3 个答案:

答案 0 :(得分:3)

实现此目的的一种方法是使用itertools.islice

from itertools import islice

chunks = (1,2,6,1)
s = '0123456789'
assert len(s) >= sum(chunks)

it = iter(s)
result = [int(''.join(islice(it, i))) for i in chunks]
print(result)
# [0, 12, 345678, 9]

答案 1 :(得分:0)

不是那么pythonic但写得很有趣:

def split(a,*b):
    def split_rec(a,b,l):
        print a
        if len(b) == 0:
            return l
        cut_point = b[0]
        l.append(a[0:cut_point])
        return split_rec(a[cut_point:], b[1:], l)
    return split_rec(a,b,[])

print split("1234567890",1,2,6,1)

答案 2 :(得分:0)

使用基本代码实现结果的另一种简单方法。

.Dispose()