Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 16, 2011 08:20:55

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

не получается определить тип как список

всем привет.

при итерации по словарю, в условии проверяю первый айтем итератора. если его тип == 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

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

спасибо.



Офлайн

#2 Ноя. 16, 2011 08:38:11

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

не получается определить тип как список

исправил так:

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
и вроде как работает.

скажите, это правильный способ?



Офлайн

#3 Ноя. 16, 2011 09:06:26

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Офлайн

#4 Ноя. 16, 2011 09:08:10

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

не получается определить тип как список

o7412369815963, сильно благодарен.
вопрос закрыт.



Офлайн

#5 Ноя. 16, 2011 10:07:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9973
Репутация: +  856  -
Профиль   Отправить e-mail  

не получается определить тип как список

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'>
>>>



Отредактировано (Ноя. 16, 2011 10:12:27)

Офлайн

#6 Ноя. 16, 2011 10:18:59

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

не получается определить тип как список

py.user.next, спасибо. учту.



Офлайн

#7 Ноя. 29, 2011 01:54:28

baa
От:
Зарегистрирован: 2011-11-25
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

не получается определить тип как список

m = {1:"1", 2:[1,2]}
for it in m.items():
print it[0],'-', type(it[1])



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version