python中关键字index,Python索引错误值不在列表中.... index(值)上

I am a beginner at Python, and to those who holds negative thoughts against my post, please leave. I am simply seeking help here and trying to learn. I'm trying to check within a simple data set the 0s and 1s. This will be used towards defining voids and solids on floor plans to define zones in buildings... eventually 0s and 1s will be swapped out with coordinates.

I am getting this error: ValueError: [0, 3] is not in list

I am simply checking if one list is contained in the other.

currentPosition's value is [0, 3]

subset, [[0, 3], [0, 4], [0, 5], [1, 3], [1, 4], [1, 5], [2, 1], [3, 1], [3, 4], [3, 5], [3, 6], [3, 7]]

Here's the code snippet:

def addRelationship(locale, subset):

subset = []; subSetCount = 0

for rowCount in range(0, len(locale)):

for columnCount in range (0, int(len(locale[rowCount])-1)):

height = len(locale)

width = int(len(locale[rowCount]))

currentPosition = [rowCount, columnCount]

currentVal = locale[rowCount][columnCount]

print "Current position is:" , currentPosition, "=", currentVal

if (currentVal==0 and subset.index(currentPosition)):

subset.append([rowCount,columnCount])

posToCheck = [rowCount, columnCount]

print "*********************************************Val 0 detected, sending coordinate to check : ", posToCheck

newPosForward = checkForward(posToCheck)

newPosBackward = checkBackward(posToCheck)

newPosUp = checkUpRow(posToCheck)

newPosDown = checkDwnRow(posToCheck)

I am using subset.index(currentPosition) to check and see if [0,3] is in subset but getting the [0,3] is not in list. How come?

解决方案

Let's show some equivalent code that throws the same error.

a = [[1,2],[3,4]]

b = [[2,3],[4,5]]

# Works correctly, returns 0

a.index([1,2])

# Throws error because list does not contain it

b.index([1,2])

If all you need to know is whether something is contained in a list, use the keyword in like this.

if [1,2] in a:

pass

Alternatively, if you need the exact position but don't know if the list contains it, you can catch the error so your program does not crash.

index = None

try:

index = b.index([0,3])

except ValueError:

print("List does not contain value")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值