如何使用Python的groupby

时间:2013-09-09 04:30:12

标签: python string itertools

如何在2上拆分字符串,例如“string”将被分成“st”,“ri”,“ng”组。 我检查了doc,来自itertools的groupby似乎是我需要的。但是,有没有办法通过不使用itertools来做到这一点? 感谢

3 个答案:

答案 0 :(得分:2)

你可以在没有itertools的情况下做到,但速度会慢一些。除非学习成绩优异,否则请使用itertools page:

中的“石斑鱼”食谱
def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

答案 1 :(得分:1)

s='your input string'
ans=[  ]
i=0
while i < len(s):
    ans.append( s[ i:i+2 ] )
    i+=2
print ans

答案 2 :(得分:0)

如果您只想在不使用itertools的情况下执行这两个字符组,可以使用:

s = 'string'
groups = [''.join(g) for g in zip(s[:-1:2], s[1::2])]

请注意,这仅适用于偶数长度的字符串。