1

3文字のカウントを取得するために文字列を変換するにはどうすればよいですか?たとえば、文字列"i like walking"to""i l", " li", "lik" "などを言いますか?

合計でいくつのカウントがあり、それらのそれぞれが表示される時間をリストしたい場合はどうなりますか?

4

6 に答える 6

9

簡単なリスト内包表記:

s = "i like walking"
triplets = [s[i:i+3] for i in range(len(s) - 2)]
于 2012-10-02T17:33:49.893 に答える
5
s = "i like walking"
print [s[i:i+3] for i in xrange(0, len(s) - 2)]
于 2012-10-02T17:33:13.683 に答える
4

以下はリスト内包表記の代わりです:

>>> s = "i like walking"
>>> map(''.join, zip(s, s[1:], s[2:]))
['i l', ' li', 'lik', 'ike', 'ke ', 'e w', ' wa', 'wal', 'alk', 'lki', 'kin', 'ing']
于 2012-10-02T17:36:05.960 に答える
1
>>> strs="i like walking"
>>> pair_size=3

>>> [strs[i:i+pair_size] for i in range(len(strs)-(pair_size-1))]
['i l', ' li', 'lik', 'ike', 'ke ', 'e w', ' wa', 'wal', 'alk', 'lki', 'kin', 'ing']

>>> pair_size=4
>>> [strs[i:i+pair_size] for i in range(len(strs)-(pair_size-1))]
['i li', ' lik', 'like', 'ike ', 'ke w', 'e wa', ' wal', 'walk', 'alki', 'lkin', 'king']
于 2012-10-02T17:34:59.553 に答える
0

このような何かがうまくいくはずです:

result = []
for i in range(0,len(yourString) - 2):
   temp = yourString[i] + yourString[i+1] + yourString[i+2]
   result.append(temp)
于 2012-10-02T17:33:12.793 に答える
0

もう1つの方法:

mystr="i like walking"
mylist=[]

i=0
while i<len(mystr)-2:
  mylist.append(mystr[i:i+3])
  i+=1

print mylist
于 2012-10-02T17:43:52.127 に答える