Shriphani wrote: > Hello, > Would that mean that if I wanted to append all the (date, time) tuples > to a list, I should do something like: > > for file in list_of_backup_files: > some_list.append(file)
That would be one way to do it (assuming you started with some_list as an empty list). But a faster way would be to use a list comprehension and say some_list = [f for f in list_of_backup_files] > By the way I did this: > > def listAllbackups(filename): > list_of_backups = glob(home+'/Desktop/backupdir/*%s*'%filename) > for element in list_of_back: > if element.find(file) != -1: > date_components = element.split('-')[-4:-1] > date = str(date_components[0]) + ":" + > str(date_components[1]) + > ":" + str(date_components[2]) > time = element.split('-')[-1] > yield (date, time) > print listAllbackups('fstab') > > > I ran it in the terminal and I got: > > <generator object at 0x81ed58c> > > Why does it do that and not just print out all the values of (date, > time) Because the generator object returned by the function has to be used in an iterative context to produce its values. Which is why the list comprehension produces a list! If you don't really want a generator then you could just rewrite the function to return a list in the first place. You did specifically ask "how do I use the yield statement ...". If you are going to iterate o ver the list then a generator is typically more memory-efficient (because it only produces one element at a time), and can do things that a list can't (like deal with a potentially infinite sequence of results). regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC/Ltd http://www.holdenweb.com Skype: holdenweb http://del.icio.us/steve.holden Sorry, the dog ate my .sigline -- http://mail.python.org/mailman/listinfo/python-list