1

文字列から指定された長さのすべてのnタプルを生成する、単純なpythonicの方法はありますか?

たとえばgenerateTuples("Hello, World!", 3)、次のように作成したいと思います。

[ "Hel", "ell", "llo", "lo,", "o, ", ", W", " Wo", "Wor", "orl", "rld", "ld!" ]
4

4 に答える 4

1
>>> a = "Hello, World!"
>>> def generate_tuples(string, n):
...     return [string[i:i+n] for i in range(len(string)-n+1)]
... 
>>> generate_tuples(a, 3)
['Hel', 'ell', 'llo', 'lo,', 'o, ', ', W', ' Wo', 'Wor', 'orl', 'rld', 'ld!']
于 2012-04-08T07:06:05.583 に答える
1

これはおそらくあなたが探しているものです

>>> st="Hello, World!"
>>> [st[i:i+3] for i in xrange(0,len(st)-2)]
['Hel', 'ell', 'llo', 'lo,', 'o, ', ', W', ' Wo', 'Wor', 'orl', 'rld', 'ld!']

または、必要に応じて関数として記述できます。

>>> def generateTuples(st,n):
        return [st[i:i+n] for i in xrange(0,len(st)-n+1)]
于 2012-04-08T07:07:14.170 に答える