@Jamylak ve @ jpaddison3'ün cevaplarını bir araya getirerek, giriş olarak sayısal dizilere karşı sağlam olmanız ve bunları listelerle aynı şekilde işlemeniz gerekiyorsa, kullanmalısınız.
import numpy as np
isinstance(P, (list, tuple, np.ndarray))
Bu liste, tuple ve numpy dizilerinin alt sınıflarına karşı dayanıklıdır.
Ve sıralamanın diğer tüm alt sınıflarına karşı da sağlam olmak istiyorsanız (sadece liste ve grup değil),
import collections
import numpy as np
isinstance(P, (collections.Sequence, np.ndarray))
Neden bir şeyleri bir hedef değerle isinstancekarşılaştırıp değil, bu şekilde yapmalısınız type(P)? İşte NewListönemsiz bir liste alt sınıfını yaptığımız ve çalıştığımız bir örnek .
>>> class NewList(list):
... isThisAList = '???'
...
>>> x = NewList([0,1])
>>> y = list([0,1])
>>> print x
[0, 1]
>>> print y
[0, 1]
>>> x==y
True
>>> type(x)
<class '__main__.NewList'>
>>> type(x) is list
False
>>> type(y) is list
True
>>> type(x).__name__
'NewList'
>>> isinstance(x, list)
True
Buna rağmen xve yeşit olarak karşılaştırmak, onları ele almak typefarklı davranışlarla sonuçlanır. Bununla birlikte, bir xalt sınıfının bir örneğidir listkullanılarak, isinstance(x,list)istenilen davranışı ve muamele verir xve yaynı şekilde.
typemi?