ValueError: 0 不在列表中

Posted

技术标签:

【中文标题】ValueError: 0 不在列表中【英文标题】:ValueError: 0 is not in list 【发布时间】:2020-01-23 11:11:19 【问题描述】:

我是 python 新手。我对作为项目一部分的这段代码有一些问题。列表 v、h、lx 与主要数据相似。错误在第 15 行:“ValueError:0 不在列表中”。我无法理解这个错误的原因来解决这个问题。代码如下。

v = [(0,5), (2,5), (3,2), (4,2), (5,5)]
h = [(5,0), (5,2), (2,3), (2,4), (5,5)]
lx = [(0, 0), (0, 2), (0, 3), (0, 4), (0, 5), (2, 0), (2, 2), (2, 3), (2, 4), (2, 5), (3, 0), (3, 2), (4, 0), (4, 2), (5, 0), (5, 2), (5, 5)]
#ly= [(0, 0), (2, 0), (3, 0), (4, 0), (5, 0), (0, 2), (2, 2), (3, 2), (4, 2), (5, 2), (0, 3), (2, 3), (0, 4), (2, 4), (0, 5), (2, 5), (5, 5)]
ly = sorted(lx, key = lambda q : q[1])

for i in range(len(lx)):
    x0 = lx[i][0]
    y0 = lx[i][1]

    if((x0,y0) in v or (x0,y0) in h):
        continue
    else:
        for j in range(1, len(v)):
            x1 = ly[ly.index(x0, y0) + j][0] 
            if ((x1,y0) in v):
                continue
            else:
                pass

        for k in range(1, len(h)):      
            y1 = lx[lx.index(x0,y0) + k][1]
            if ((x0,y1) in h):
                continue
            else:
                pass    
    print(x0,y0,x1,y1)

错误:

Traceback (most recent call last):
  File "C:\Users\ASUS\Desktop\python\test2.py", line 15, in <module>
    x1 = ly[ly.index(x0, y0) + j][0] 
ValueError: 0 is not in list

预期输出:

0 0 2 2
0 2 2 3
0 3 2 4
0 4 2 5
.......

【问题讨论】:

【参考方案1】:

index((x0, y0)) 代替 index(x0, y0)

【讨论】:

以上是关于ValueError: 0 不在列表中的主要内容,如果未能解决你的问题,请参考以下文章

ValueError: list.remove(x): x 不在列表中(但有)

当我尝试从列表中删除元素时,如何忽略 ValueError?

ValueError 在 Scikit 中找到最佳超参数时使用 GridSearchCV 学习 LogisticRegression

ValueError:特征不在特征字典中

Mayavi 不在 Spyder 中运行:抱怨“ValueError: API 'QString' ...”

错误:list.remove(x):x 不在列表中,我不明白为啥