2011-02-03 2 views
2

특정 인덱스 범위 내에 마침표가 있으면 A에 대한 새 값을 찾는 프로그램을 실행하려고합니다. 문제는 검색의 도메인을 결정하기 위해 단어를 목록 (예 : 'A', 'B', 'C', 'D', 'E' 'F', 'G', 'A', 'B', 'C', 'D', 'E', 'F', 'G' 객체는 첫 번째 A를 찾고, 작은 목록 ('A B. C D')을 검색하여 '.'을 찾습니다. 변수를 찾으면 A의 다음 인스턴스에 변수를 대입합니다. 모든 코드는 '.'을 찾는 것을 제외하고 지금까지 작동합니다. in 연산자는 'B'로 취급하기 때문에. . 'B'는 알려지지 않으므로 응용 프로그램에서는 작동하지 않습니다.in 연산자가있는 하위 문자열을 파이썬의 단어 목록에서 검색합니다.

'을 (를) 검색 할 수있는 방법이 있습니까?' 알 수없는 텍스트 옆에 나타나더라도? 정규 표현식을 사용하려고 시도했지만 응답이 잘되지 않습니다. 이것은 아마도 내 부분의 오류의 결과 일 것입니다.

words = 'A B. C D E F G A B C D E F G A B C D E F G A B C D E F G' 
corpus = words.split() 
index_A = corpus.index('A') 
while '.' in corpus[index_A : index_A + 3]: 
    # This does not seem to be picking up the '.' in 'b.' in isolation. It will find 
    # 'B.' but not '.' from corpus. 
    index_A = corpus.index('A', index_A+1) 
+2

나는 당신이 의미하는 것을 이해하지 못합니다. "알려지지 않은 텍스트"란 무엇이며 왜 그렇지 않을까요? " foo' 작품 에서요? :) 일부 예제 코드 또는 입력 및 예상 출력 조금 도움이 될 것 같아요. – Skurmedel

+0

str 객체를 부모 객체로 옮기고 싶다고 생각합니다. – jbcurtin

+0

@bbcurtin : 음 ... 그래. 내가 이해하지 못하는 것은 ('A B. C D') 목록입니다. 이것은 기간과 이동 데이터를 찾은 결과입니까? – Skurmedel

답변

1

이렇게하면 '.' 항목 끝에.

words = 'A B. C D E F G A B C D E F G A B C D E F G A B C D E F G' 
    corpus = words.split() 
    for item in corpus: 
    if item.endswith('.'): 
    #logic 
+0

이것은 for 루프와 동일하게 작동하는 것으로 보이지만 읽기 쉽습니다. 나는 너무나 구체적인 것이 내장되어 있다는 것에 놀라움을 금치 못했다. 나는 BIF리스트를 확인해야만한다. –

1

정규식이 필요하지 않지만 정규식이 작동합니다. 특별한 점이므로 도트에서 탈출하는 것을 잊지 마십시오. 그런 다음 이스케이프를 피하기 위해 원시 문자열을 사용하는 것을 잊지 마십시오. :)

while 루프의 문제는 "."과 정확히 일치하는 항목을 찾고 있다는 것입니다. "."가 들어있는 해당 슬라이스의 항목이 아닌 해당 슬라이스에 있어야합니다. 각 항목의 내부 점검으로 변경 :

while any("." in x for x in corpus[index_A : index_A + 3]): 
+0

같은 것을 타이프하고있었습니다. –

+0

죄송합니다. 귀하의 답변을 이해할 수 있는지 확실하지 않습니다. 다른 의견에 관해서는, 코드를 작성하지 않은 것에 대해 사과드립니다. 여기있어. corpus = words.split() index_A = corpus.index ('A') while '.'단어는 '.' in corpus [index_A : index_A + 3] : #이 줄은 '.'을 선택하지 않은 것 같습니다. 'b'에 고립되어 있으면, 그것은 'B'를 발견 할 것이다. 하지만 '.' from corpus index_A = corpus.index ('A', index_A + 1) –

+1

@MichaelRauh : 코드를 질문으로 이동했습니다. 내가 너를 올바르게 이해 했길 바래. –

1

문장을 구문 분석하는 것으로 보입니다. 이 작업을 수행하기 위해 Natural Language Toolkit for Python을 사용해 보셨습니까?

+0

사실 나는 이것이 존재한다는 것을 실제로 몰랐다. 이것을 지적 해 주셔서 감사합니다! –

관련 문제