Python:比较列表中的项目

时间:2016-10-26 05:16:18

标签: python

我对这个主题做了一些研究,Stack Overflow和其他地方,但仍然无法解决这个问题。

我正在解析一个由书籍,章节和诗歌构成的文本的评论。在这个阶段,我把所有的注释按顺序分开但没有组织,我希望每当我达到[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

然而,当我尝试使用if语句来捕获index1:1 index2:1时,由于某种原因它没有被触发。这就是我尝试过的:

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

我知道这是因为我在if语句之后添加了跟踪线并且它们没有显示,即使我知道有这样的记录,如上所示。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

  1. cmp已弃用。避免。
  2. 你确定get_comment_index()正在返回一个列表吗?
  3. 以下是您的计划的模拟版本:

    >>> 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
    >>>