2016-10-26 2 views
0

Я провел некоторое исследование по этой теме, переполнение стека и в других местах и ​​до сих пор не могу взломать эту ошибку.Python: Сравнение элементов в списке

Я разбираю комментарий к тексту, который структурирован по книге, главе и стиху. На этом этапе у меня есть все комментарии, разделенные по порядку, но не организованные, и я хочу отделить каждый из комментариев по книге, начиная новый элемент, когда я достигаю индекс [1,1]. У меня есть метод, который извлекает индекс этого комментария, который, кажется, так что работает просто отлично (распечатка результатов get_comment_index(comment), INDEX1 является get_comment_index(comment)[0] и INDEX2 является get_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 cmp(get_comment_index(comment),[1,1])==0: 
if get_comment_index(comment)[0]==1 and get_comment_index(comment)[1]==1: 

Я знаю это, потому что я ставлю следовые строки после заявления, если и они не отображаются, даже хотя я знаю, что есть такие записи, как показано выше. Что может быть pr oblem?

+1

Вы сравнения с правильным типом? '1' - это не то же самое, что' '1''. 'if get_comment_index (комментарий) == ['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

Смежные вопросы