interating over single element array
Terry Reedy
tjreedy at udel.edu
Sat Jun 9 03:48:12 EDT 2007
"Basilisk96" <basilisk96 at gmail.com> wrote in message
news:1181345593.788652.275380 at h2g2000hsg.googlegroups.com...
| On Jun 8, 11:54 am, "T. Crane" <tcr... at REMOVETHISuiuc.edu> wrote:
| You can also do this (if tuples are okay in your case):
|
| a = 1,
|
| The comma turns 'a' into a tuple (1,) which is both iterable and has a
| length of 1.
|
| I have run into this issue before with a function that took a list of
| filenames (strings), and needed to iterate over the list to operate on
| the input files. For the case when the input would be a single file, I
| needed to turn the input string into an iterable such that the 'for'
| loop would not iterate on the filename characters (a rather
| undesirable gotcha, you understand :-) ). So I solved my problem like
| this:
|
| def loadfiles(filelist):
| if not isinstance(filelist, list):
| filelist = filelist,
Any what if 'filelist' is any iterable other than a string or list? Your
code is broken, and unnecessarily so. So I would call the parameter
'files' and test for isinstance(files, str) #or basestring. And wrap if it
is.
| for filename in filelist:
| f = open(filename,'r')
| #do interesting stuff with file, etc...
|
| ..and it's been working very well.
|
| Cheers,
| -Basilisk96
|
| --
| http://mail.python.org/mailman/listinfo/python-list
|
More information about the Python-list
mailing list