Newbie - How to iterate list or scalar ?
Diez B. Roggisch
deets at nospam.web.de
Tue Aug 8 06:16:06 EDT 2006
Andy Dingley wrote:
> I seem to be writing the following fragment an awful lot, and I'm sure
> it's not the best and Pythonic way to do things. Any advice on better
> coding style?
>
> pluginVersionNeeded is a parameter passed into a method and it can
> either be a simple scalar variable, or it can be a list of the same
> variables. My problem is how to iterate it, whether it's a a list or
> not.
>
> I can't simply throw it into the for...in loop -- if the scalar
> variable were to be a string (which is considered to be atomic in my
> application) then Python sees this string as iterable and iterates over
> the characters in it!
>
>
> versionsNeeded = pluginVersionNeeded
> if isinstance( versionsNeeded, list):
> versionsToTest = versionsNeeded
> else:
> versionsToTest = [ versionsNeeded ]
> for versionNeeded in versionsToTest:
> pass
Use a function.
def listify(v):
if not isinstance(v, list):
return [v]
return v
versionsToTest = listify(versionsNeeded)
Diez
More information about the Python-list
mailing list