如何确定索引是否为列表/数组?

时间:2019-10-03 00:29:03

标签: python arrays list indexing

我本质上是在尝试计算指定的索引是否为列表。我有一个嵌入到索引中的列表。

这是我到目前为止所拥有的

    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()

1 个答案:

答案 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