【问题标题】:getting index of element in list (python)获取列表中元素的索引(python)
【发布时间】:2014-11-27 06:42:04
【问题描述】:

不明白为什么在下一个示例中获取列表中元素的索引会有所不同:

list = [1, 1, 1, 4]

print list.index(list[3]) 

返回预期的 3 作为列表中的索引第四个元素

但是

list = [1, 1, 1, 1]

print list.index(list[3]) 

意外返回 0。

有什么区别?这是python 3.3

【问题讨论】:

    标签: python list indexing


    【解决方案1】:

    list.index(x) 总是返回第一个匹配的索引。在第一种情况下,第一个匹配在索引 3 处,即 4 在索引 3 处,而在第二种情况下,第一个匹配在索引 0 处,即 1 在索引 0 处。1 也在索引 1,2 和 3 处。

    【讨论】:

      【解决方案2】:

      来自documentation:

      list.index(x)

      返回列表中第一个值为 x 的项目的索引。如果没有这样的项目是错误的。

      您正在返回第一个匹配项的索引。

      【讨论】:

        【解决方案3】:

        第一次使用列表作为变量名是不好的做法:

        index search the element from the start of list, so in here you will get always 0:
        >>> my_list = [1, 1, 1, 1]  
        >>> my_list.index(1)
        0
        >>> my_list.index(my_list[3])
        0
        

        【讨论】:

          【解决方案4】:

          list.index(n) 将返回“列表”中第一个“n”的索引。 所以在你的例子中

          list = [1, 1, 1, 1] #list[3] will equal 1
          

          所以list.index([3]) 或list.index(1) 将返回 0,或列表中第一个 1 的索引。

          【讨论】:

            猜你喜欢
            • 2013-12-03
            • 2019-03-03
            • 1970-01-01
            • 1970-01-01
            • 2022-08-17
            • 1970-01-01
            • 1970-01-01
            • 2023-03-13
            • 1970-01-01
            相关资源
            最近更新 更多