Erik wrote, on February 23, 2017 4:03 PM > > On 23/02/17 23:00, Deborah Swanson wrote: > >> 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] > > > > gets the right answer, but > > > > group[[idx][records_idx[label]]], > > where idx = 0 and records_idx[label]] = 4 > > > > gets the IndexError. > > So remove the outermost square brackets then so the two expressions are > the same (what I - and also Steven - mentioned is correct: you are > creating a single-element list and indexing it (and then using the > result of that, should it work, to index 'group')).
I see that clearly now, I just couldn't understand it from what you and Steven were saying. > The same thing as "group[0][4]" in your example is: > > group[idx][records_idx[label]] > > (assuming you have all those things correct - I haven't studied your > code in a lot of detail). You have it exactly correct, so no code study required. ;) > Your new example expressed using the original construct you posted is: > > group[[0][4]] > > ... see the extra enclosing square brackets? > > E. Yes, I see them now, and deleting them makes everything work like it should. -- https://mail.python.org/mailman/listinfo/python-list