关于string:如何使用Python的groupby

How to use Python's groupby

本问题已经有最佳答案,请猛点这里访问。

如何在2上拆分一个字符串,例如"string"将被拆分为"st"、"ri"、"ng"组。我查了一下医生,ITertools的Groupby似乎就是我需要的。但是,有没有一种简单的方法可以不使用itertools来完成它?谢谢


你可以不使用itertools来完成它,但是速度会变慢。除非它是一个学习过度,否则使用ITertools页面中的"Grouper"配方:

1
2
3
4
5
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
2
3
4
5
6
7
s='your input string'
ans=[  ]
i=0
while i < len(s):
    ans.append( s[ i:i+2 ] )
    i+=2
print ans


如果只想在不使用itertools的情况下进行两个字符组,可以使用以下命令:

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

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