首页 > 解决方案 > list.index() 找不到现有元素

问题描述

我有一个二进制值的嵌套列表(0,1)作为整数。

我知道我们不能递归地进入多维列表来查找元素,所以我放了一个循环来获取单个列表。

然后调用list.index(0)它会找到正确的 0 索引,但是当我调用list.index(1)它时会返回一个值错误。我主要是在寻找解释而不是解决方案。

代码:

def getA(a):
    b = 0
    m = [] 
    for j in range(a):
        b = b+j
    for x in range(b+1):
        m.append(getR(x))
    for z in m:
        print(z.index(1))  # Throws ValueError: 1 is not in list

但是打印z:

 [0, 0, 0, 0, 0]
 [0, 0, 0, 1, 1]
 [0, 0, 1, 0, 1]
 [0, 0, 1, 1, 0]
 [0, 1, 0, 0, 1]
 [0, 1, 0, 1, 0]
 [0, 1, 1, 0, 0]
 [1, 0, 0, 0, 1]
 [1, 0, 0, 1, 0]
 [1, 0, 1, 0, 0]
 [1, 1, 0, 0, 0]

最后打印 z.index(0):

 0
 0
 0
 0
 0
 0
 0
 1
 1
 1
 2

标签: python

解决方案


list.index(1) 返回值错误,因为您的第一个列表 ([0, 0, 0, 0, 0]) 中没有“1”。如果您尝试 list.index(2),您会看到类似的响应


推荐阅读