Найти - Пользователи
Полная версия: не получается определить тип как список
Начало » Python для новичков » не получается определить тип как список
1
pupkin2
всем привет.

при итерации по словарю, в условии проверяю первый айтем итератора. если его тип == type() - что-то выполняю одним образом. если же не список - что-то выполняю другим образом.
проблема в том, что проверка на тип словаря всегда ложная.
m = {1:"1", 2:[1,2]}
for it in m.items():
if it[1] is type([]):
print it[0], "is list"
else:
print it[0], "is string"
http://liveworkspace.org/code/b6295afa85e3c63ed3eba6834ef59f12

что делаю не так?

спасибо.
pupkin2
исправил так:
m = {1:"1", 2:[1,2]}
for it in m.items():
if type(it[1]) is type([]):
print it[0], "is list"
else:
print it[0], "is string"
http://liveworkspace.org/code/6b495d57bd07185f092445a2e863ae14
и вроде как работает.

скажите, это правильный способ?
o7412369815963
Вот ещё пара способов:
http://liveworkspace.org/code/a81d8e02e12b128f1269270ca1a2f18e
http://liveworkspace.org/code/159aa3507b149aeef067e9c766f76744
pupkin2
o7412369815963, сильно благодарен.
вопрос закрыт.
py.user.next
o7412369815963
http://liveworkspace.org/code/159aa3507b149aeef067e9c766f76744
isinstance() может среагировать на объект производного класса
>>> class L(list):
... pass
...
>>> o = L([1, 2, 3])
>>> o
[1, 2, 3]
>>> isinstance(o, list)
True
>>> type(o)
<class '__main__.L'>
>>>
pupkin2
py.user.next, спасибо. учту.
baa
m = {1:"1", 2:[1,2]}
for it in m.items():
print it[0],'-', type(it[1])
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB