"Deborah Swanson" <pyt...@deborahswanson.net> writes: >> -----Original Message----- >> From: Erik [mailto:pyt...@lucidity.plus.com] >> Sent: Thursday, February 23, 2017 2:09 AM >> To: pyt...@deborahswanson.net; python-list@python.org >> Subject: Re: Namedtuples problem >> >> >> Hi, >> >> On 23/02/17 09:38, Deborah Swanson wrote: >> > group[[idx][records_idx[label]]] >> > gets an IndexError: list index out of range >> >> [snip] >> >> > Can anyone see why I'm getting this Index error? and how to fix it? >> >> It looks to me like you are indexing into a single-element >> list that you >> are creating using the literal list syntax in the middle of >> the expression. > > Actually, group is essentially a 2-element list. Each group has a list > of rows, and each row has a set of fields. group has to be indexed by > row index and field index. (This is a namedtuple configuration.) > > The weirdness is that > > group[0][4]
Sure. No trouble there. > gets the right answer, but > > group[[idx][records_idx[label]]], > where idx = 0 and records_idx[label]] = 4 > > gets the IndexError. group is not involved in the index error. Just write [idx][records_idx[label]] and you'll get the error. Wrapping that up in group[...] won't make a difference. In fact, since idx is 0 and records_idx[label]] is 4, you get the same error (for the same reason) by typing [0][4] into a Python REPL. Does it still seem weird? This is just another shot at explaining the issue because, sometimes, different words can help. I thought the message you are replying to (as well as others) explained it well, but it obviously it did not hit the spot. <snip> -- Ben. -- https://mail.python.org/mailman/listinfo/python-list