3文字のカウントを取得するために文字列を変換するにはどうすればよいですか?たとえば、文字列"i like walking"
to""i l", " li", "lik" "
などを言いますか?
合計でいくつのカウントがあり、それらのそれぞれが表示される時間をリストしたい場合はどうなりますか?
簡単なリスト内包表記:
s = "i like walking"
triplets = [s[i:i+3] for i in range(len(s) - 2)]
s = "i like walking"
print [s[i:i+3] for i in xrange(0, len(s) - 2)]
以下はリスト内包表記の代わりです:
>>> 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']
>>> 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']
このような何かがうまくいくはずです:
result = []
for i in range(0,len(yourString) - 2):
temp = yourString[i] + yourString[i+1] + yourString[i+2]
result.append(temp)
もう1つの方法:
mystr="i like walking"
mylist=[]
i=0
while i<len(mystr)-2:
mylist.append(mystr[i:i+3])
i+=1
print mylist