A different way to check the type of a list

后端 未结 2 1742
长发绾君心
长发绾君心 2021-01-15 03:51
list = [1,2,3]
print(type(list) == list) # Prints False

Other than changing the name of the list, is there another way to check the type of this li

相关标签:
2条回答
  • 2021-01-15 04:37

    Your code justly returns False, as you replaced the original meaning of list by your list. You shouldn't use the names of Python builtins as variable names.

    So, change the name of your list and it will work as expected.

    If it's too late for that, as you suggest in the edit to your question, you can still access the original list with:

    list = [1,2,3]
    print(type(list) == __builtins__.list) 
    # True
    

    Or, the more recommended way, using isinstance instead of type(...) == ...:

    print(isinstance(list, __builtins__.list))
    # True
    
    0 讨论(0)
  • 2021-01-15 04:43

    This is because you are shadowing the built-in list

    l = [1,2,3]
    print(type(l) == list) # True
    

    type(list) gives <class 'list'>, which is not [1,2,3].

    You can use one of the options suggested by @ThierryLathuille, but the best practice will be renaming the list variable, you shouldn't use built-in names as variables names.

    0 讨论(0)
提交回复
热议问题