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])] |
注意,这只适用于偶数长度的字符串。