Terry--gmail wrote: > Marc, my understanding is, is that: > > lens[col].append(len(item)) > > -should be building a mirror image of my list of lists called catalog2, > which currently has 9 columns by x number of rows, and that we are > plugging into these positions, the sizes of all the elements in that > block of data. > > If that is true, then lens[col] is creating lists which contain the > sizes of the elements in that particular column. > > So, I completely don't understand why we would eliminate the positioning > of which list we are referencing in lens by saying: > > lens.append(len(item)) > > It seems to me that, that statement would put the entire block of > element sizes into one list, and the next MAX statement would then yield > only a single number, which would be the largest size element it > encounted in the whole of catalog2! > > Or am I really missing the boat here? :)
[Alan Gauld] > lens = [] * len(catalog2[0]) > for row in catalog2[1:]: # miss the first row > for col,item in row: > lens[col].append(len(item)) > > lens = [max(col) for col in lens] In the above snipped Alan introduced introduced another bug that wasn't fixed in any of the posts I saw: lens should be a list of lists. With "lens" referring to [[], [], [], ...] lens[n] refers to the n-th list and thus lens[col].append(len(item)) appends the items's length to the respective column/list. The complete fixed code is then: # make a list with one empty list per column lens = [] for item in catalog2[0]: lens.append([]) for row in catalog2: for col, item in enumerate(row): lens[col].append(len(item)) lens = [max(col) for col in lens] The first for-loop can also be written as a list comprehension: lens = [[] for item in catalog2[0]] You might be tempted to simplify further # WRONG: lens = [[]] * len(catalog2[0]) but that repeats the same inner list len(catalog2[0]) times where you actually need len(catalog2[0]) distinct lists. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor