枚举 python 中的句子
Enumerate sentences in python
我有一个由两个句子组成的字符串元组
a = ('What', 'happened', 'then', '?', 'What', 'would', 'you', 'like', 'to', 'drink','?')
我试过了
for i,j in enumerate(a):
print i,j
这给出了
0 What
1 happened
2 then
3 ?
4 What
5 would
6 you
7 like
8 to
9 drink
10 ?
而我需要的是这个
0 What
1 happened
2 then
3 ?
0 What
1 would
2 you
3 like
4 to
5 drink
6?
最简单的方法是手动增加 i
而不是依赖 enumerate
并重置字符 ?
、.
或 !
上的计数器.
i = 0
for word in sentence:
print i, word
if word in ('.', '?', '!'):
i = 0
else:
i += 1
可能太复杂了。我认为@JeromeJ 的解决方案更简洁。但是:
a=('What', 'happened', 'then', '?', 'What', 'would', 'you', 'like', 'to', 'drink','?')
start = 0
try: end = a.index('?', start)+1
except: end = 0
while a[start:end]:
for i,j in enumerate(a[start:end]):
print i,j
start = end
try: end = a.index('?', start)+1
except: end = 0
还有一个:
from itertools import chain
for n,c in chain(enumerate(a[:a.index('?')+1]), enumerate(a[a.index('?')+1:])):
print "{} {}".format(n,i)
....:
0 What
1 happened
2 then
3 ?
0 What
1 would
2 you
3 like
4 to
5 drink
6 ?
我有一个由两个句子组成的字符串元组
a = ('What', 'happened', 'then', '?', 'What', 'would', 'you', 'like', 'to', 'drink','?')
我试过了
for i,j in enumerate(a):
print i,j
这给出了
0 What
1 happened
2 then
3 ?
4 What
5 would
6 you
7 like
8 to
9 drink
10 ?
而我需要的是这个
0 What
1 happened
2 then
3 ?
0 What
1 would
2 you
3 like
4 to
5 drink
6?
最简单的方法是手动增加 i
而不是依赖 enumerate
并重置字符 ?
、.
或 !
上的计数器.
i = 0
for word in sentence:
print i, word
if word in ('.', '?', '!'):
i = 0
else:
i += 1
可能太复杂了。我认为@JeromeJ 的解决方案更简洁。但是:
a=('What', 'happened', 'then', '?', 'What', 'would', 'you', 'like', 'to', 'drink','?')
start = 0
try: end = a.index('?', start)+1
except: end = 0
while a[start:end]:
for i,j in enumerate(a[start:end]):
print i,j
start = end
try: end = a.index('?', start)+1
except: end = 0
还有一个:
from itertools import chain
for n,c in chain(enumerate(a[:a.index('?')+1]), enumerate(a[a.index('?')+1:])):
print "{} {}".format(n,i)
....:
0 What
1 happened
2 then
3 ?
0 What
1 would
2 you
3 like
4 to
5 drink
6 ?