On 01/05/17 15:54, Stephen P. Molnar wrote: > Unfortunately, I'm still missing something. Here is my latest attempt > to incorporate your solution: > name = input("Enter Molecule ID: ") > name = str(name) you don't need the str() since input() always returns whatever string the user enters.
> name_in = [] > name_in = name[:]+'.lac.dat' You don't need the [:] either since that just makes a copy of name. So you can just use name_in = name + '.lac.dat' But notice that you have lost the list you created. name_in is now just a string. > atm_chg = [] This creates a new empty list. But... > with open(name_in) as f: > # skip two lines > f.readline() > f.readline() > for line in f.readlines(): You don't need readlines, you can just iterate over f: for line in f: atm_chg = float(line.split()[-1]) This loses the list you created earlier and replaces it with a float. I suspect you want to append this to your list? atm_chg.append(float(line.split()[-1]) > The error this attempt give me is attached. > > IndexError: list index out of range That's only the last line of the error. Please always post the full error text. There is a lot of useful data in there that we can't see. As a debug step you could try printing line to make sure it always contains multiple fields. But are you sure that you only want a list of floats out? Steven's solution based on a dictionary seemed like it might be more useful for you? -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor