2016-10-26 3 views
0

이 주제에 대해 Stack Overflow 및 다른 곳에서 연구했지만이 버그를 해결할 수 없습니다.Python : 목록의 항목 비교

저는 책, 장 및 절로 구성된 텍스트에 대한 해설을 파싱하고 있습니다. 이 단계에서 나는 모든 주석을 순서대로 분리했지만 조직화하지 않았다. 나는 [1,1]의 색인에 도달 할 때마다 새로운 요소를 시작하여 각 주석을 책별로 분리하고자한다. 나는, 그래서 get_comment_index(comment)의 결과를 인쇄 (잘 작동하는 것 같다 주석의 인덱스를 추출하는 방법을 INDEX1get_comment_index(comment)[0]하고 INDEX2get_comment_index(comment)[1]입니다 :

INDEX1: 1 INDEX2: 1 
INDEX1: 1 INDEX2: 2 
INDEX1: 1 INDEX2: 3 
INDEX1: 1 INDEX2: 4 
INDEX1: 1 INDEX2: 5 
INDEX1: 1 INDEX2: 6 
INDEX1: 1 INDEX2: 7 
INDEX1: 1 INDEX2: 9 

그러나 문이 index1의를 잡으려고하면 내가 시도 할 때 : 1 index2 :. 1, It't 어떤 이유로 트리거되지 이것은 내가 무엇을 시도했다입니다 : 내가 if 문 후 추적 라인을 넣어가 표시되지 있기 때문에

if cmp(get_comment_index(comment),[1,1])==0: 
if get_comment_index(comment)[0]==1 and get_comment_index(comment)[1]==1: 

심지어이 알고 위에서 볼 수있는 것과 같은 기록이 있음을 압니다. 오렘?

+1

는 당신이 바로 그 유형에 대해 비교하고 있습니까? '1'은 '1'과 동일하지 않습니다. 'get_comment_index (comment) == [ '1', '1'] : ... ' – AChampion

+2

왜'cmp()'인가? 오래 전에 가치가 떨어졌습니다. –

+0

@AChampion 당신이 옳다. 비록 인덱스를 int로 생각 하긴하지만, 정규 표현식을 사용하기 때문에 실제로는 문자열이다. 감사. –

답변

0
  1. cmp는 더 이상 사용되지 않습니다. 기피.
  2. get_comment_index()가 목록을 반환하고 있습니까?

    >>> def foo(): 
    ...  return [1,1] 
    ... 
    >>> cmp(foo(), [1,1]) 
    0 
    >>> foo()[0] 
    1 
    >>> foo()[1] 
    1 
    >>> 
    

    약간의 수정과 함께, 지금 :

여기에 프로그램의 시뮬레이션 버전입니다

>>> def bar(): 
...  return (1,1) 
... 
>>> cmp(bar(), [1,1]) 
1 
>>> cmp(bar(), [1,1]) 
1 
>>> bar()[0] 
1 
>>> bar()[1] 
1 
>>> 
+0

답으로 코멘트로 추가해야한다고 생각합니다. – Sharad