我本质上是在尝试计算指定的索引是否为列表。我有一个嵌入到索引中的列表。
这是我到目前为止所拥有的
if len(hashTable[hashed-1])>1:
hashTable[hashed-1].append(inVal)
else:
tempTable = [hashTable[hashed-1], inVal]
hashTable[hashed-1] = tempTable
print(inVal,hashed)
print(hashTable)
列表的输出为:(0和10无关)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, [1, 3], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10]
错误是:
if len(hashTable[hashed-1])>1:
TypeError: object of type 'int' has no len()
答案 0 :(得分:2)
您必须使用isinstance来检查您的对象是否为列表类型,如下所示:
isinstance(hashTable[hashed-1], list)
在您的情况下:
if isinstance(hashTable[hashed-1], list) and len(hashTable[hashed-1]) > 1
Python使用惰性评估来评估此if语句中的条件。因此,只有在len(hashTable[hashed-1])
为isinstance(hashTable[hashed-1], list)
时才会调用True
。