[Tutor] Building Starships -- object of type 'int' has no len()
Terry--gmail
terry.kemmerer at gmail.com
Wed Aug 20 21:06:14 CEST 2014
Alan Gauld
Hi!
We are not quite out of the woods on this last example you gave me. It
now seems to be complaining
that it doesn't want to append an integer to the list or that this isn't
the place to use '.append' -- I am probably interpreting it's complaint
wrong:
Python 3.3
If I run this last piece of code that we just added 'enumerate(row)' to:
lens = [0] * len(catalog2[0])
for row in catalog2:
for col, item in enumerate(row):
print(col, item, len(item))
lens[col].append(len(item))
lens = [max(col) for col in lens]
My result is:
0 Drives 6 <<---- my print statement result
Traceback (most recent call last):
File "/home/justme/1a_Computer_Related/Python/scripts/scratch.py",
line 43, in <module>
lens[col].append(len(item))
AttributeError: 'int' object has no attribute 'append'
While messing with the above problem, I found myself thinking (almost
always a mistake on my part) that the '.append' extension doesn't need
the list pre-formatted any more than a simple lens= [], since .append
has the ability to expand the list anyway, which would let the number of
columns be more easily expanded later in life by the programmer simply
adding a column of data to the table, so I tried-
lens = []
for row in catalog2:
for col, item in enumerate(row):
print(col, item, len(item))
lens[col].append(len(item))
lens = [max(col) for col in lens]
But my result says otherwise:
0 Drives 6
Traceback (most recent call last):
File "/home/justme/1a_Computer_Related/Python/scripts/scratch.py",
line 45, in <module>
lens[col].append(len(item))
IndexError: list index out of range
More information about the Tutor
mailing list