Using the result of type() in a boolean statement?
Terry Reedy
tjreedy at udel.edu
Wed Nov 12 13:45:38 EST 2008
dpapathanasiou wrote:
> If I define a dictionary where one or more of the values is also a
> dictionary, e.g.:
>
> my_dict={"a":"string", "b":"string", "c":{"x":"0","y":"1"},
> "d":"string"}
>
> How can I use the output of type() so I can do one thing if the value
> is a string, and another if the value is a dictionary?
>
> i.e., I'd like to define a loop like this, but I'm not sure of the
> syntax:
>
> for key, value in my_dict.items():
> if type{value) is <type 'dict'>:
if type(v) is dict:
> # do the dictionary logic
> elif type(value) is <type 'str'>:
... is str
> # do the string logic
For built-in types without a built-in name, either import the types
module or just make one yourself with type().
>>> func = type(lambda:1)
>>> func
<class 'function'>
>>> bif = type(abs)
>>> bif
<class 'builtin_function_or_method'>
For userclass instances, use the userclass.
Terry Jan Reedy
More information about the Python-list
mailing list