2014-04-13 5 views
0

나는 단어 나 sent3.index('the') 할 경우 '을'은 다음과 같은 텍스트에NLTK 지수

sent3 = ['In', 'the', 'beginning', 'God', 'created', 'the', 'heaven', 'and', 'the', 'earth', '.']

내가 1를 얻을의 인덱스를 찾기 위해 파이썬을 사용하는 것을 시도하고있는 첫 번째 단어의 색인입니다. 내가 잘 모르겠다는 것은 다른 시간의 색인을 찾는 방법 "the"가 나타나는 것입니다. 아무도 내가이 일을 어떻게 할 수 있는지 알고 있니?

감사합니다.

답변

1
[i for i, item in enumerate(sent3) if item == wanted_item] 

데모 :

>>> sent3 = ['In', 'the', 'beginning', 'God', 'created', 'the', 'heaven', 'and', 'the', 'earth', '.'] 
>>> [i for i, item in enumerate(sent3) if item == 'the'] 
[1, 5, 8] 

enumerate는 그 값과 해당 인덱스 구성된 반복 가능로부터 튜플 list를 구성한다. 이 값을 사용하여 값이 원하는 값인지 여부를 확인할 수 있습니다.

+0

고맙습니다! 와우는 빠르다 – user3528925

+0

@Downvoter 다운 투표를받을 가치가있는 것에 대한 나의 대답에 대해 도움이되지 않았거나 틀린 것이 무엇인지 말해 준다면, 나는 그것을 향상시킬 수있다. 간단히 투표를하면 무슨 소용이 있니? –

0
>>> from collections import defaultdict 
>>> sent3 = ['In', 'the', 'beginning', 'God', 'created', 'the', 'heaven', 'and', 'the', 'earth', '.'] 
>>> idx = defaultdict(list) 
>>> for i,j in enumerate(sent3): 
...  idx[j].append(i) 
... 
>>> idx['the'] 
[1, 5, 8]