Strange (?) list comprehension behavior
adalke at mindspring.com
Sun Jul 20 00:53:17 CEST 2003
> >>>[op for op in PSILex.ops if op.startswith("|| hello")]
> yields "AttributeError: 'int' object has no attribute 'startswith',"
> >>>[type(op) for op in PSILex.ops]
> produces a list of <type 'str'> objects, as would be expected. So, what is
> op? Is it a string, an int, or something else?
Can you copy&paste what you did, rather than interpret the output?
There's no way to get both of these errors that I know, and I expect
it to be more likely that you didn't see a <type 'int'> somewhere in
the output rather than a bug in Python.
You can also try
[type(op) for op in PSILex.ops if type(op) != type("")]
dalke at dalkescientific.com
More information about the Python-list