Форум сайта python.su
всем привет.
при итерации по словарю, в условии проверяю первый айтем итератора. если его тип == 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"
Офлайн
исправил так:
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"
Офлайн
Офлайн
o7412369815963, сильно благодарен.
вопрос закрыт.
Офлайн
o7412369815963isinstance() может среагировать на объект производного класса
http://liveworkspace.org/code/159aa3507b149aeef067e9c766f76744
>>> class L(list):
... pass
...
>>> o = L([1, 2, 3])
>>> o
[1, 2, 3]
>>> isinstance(o, list)
True
>>> type(o)
<class '__main__.L'>
>>>
Отредактировано (Ноя. 16, 2011 10:12:27)
Офлайн
py.user.next, спасибо. учту.
Офлайн
m = {1:"1", 2:[1,2]}
for it in m.items():
print it[0],'-', type(it[1])
Офлайн