1

如何转换字符串以获得三个字母的计数?例如,说字符串"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

另一种方法:

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 回答
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 回答