List has no attribute: strip? (try a for loop)

Im starting to get frustrated over the way that you learn from codecademy. For example in this excercise it didn´t say in the instructions that you think about iterating/forloop (or whats it called) to be able to strip the list. The example was not even close to prepare you for that.

20 Likes

As said by jansson173, i didn’t expect the answer to be in for loop for the first part.
I wrote my code simply like this:

love_maybe_lines_stripped = love_maybe_lines.strip()

How is that this code above is wrong? How is that using a for loop in this exercise suits well?

7 Likes
>>> love_maybe_lines.strip()
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    love_maybe_lines.strip()
AttributeError: 'list' object has no attribute 'strip'
>>> 

We need to parse out the individual lines which as strings DO have a strip() method.

Agreed. When looking on stackoverflow everyone was recommending to use .replace() instead. Since that was not the objective of this exercise there was no useful information on how to properly .strip() a string. Their “example” was not an example, just a console output of what the string would look like of implemented correctly. Thinking there was a bug with the exercise or something small I was not missing I clicked “solution” to find that it was a “for” loop with the rest of the lesson completed. Since I am new to coding I find this to be irritating because my logic doesn’t exactly turn to breaking outside the box if in at least it is not suggested or “hinted”. If there was just a “hint”: “maybe think about a for loop…” or whatever, this would be better instruction rather than put up some bogus information and expecting new programmers to improvise off it.

Sorry about the rant. Just frustrated.

5 Likes

‘list’ object has no attribute ‘strip’

  • Sorry, I can"t seem to grasp what the sentence above really means. What does it mean exactly?

strip is an attribute (method) of class str objects. It’s purpose is to remove leading and trailing characters. If no character(s) are given as an argument, the default is whitespace.

We cannot strip a list.

Hey surendazz, I believe it means that I can not strip the list :).

i think the confusing part is that most of the time the instructions guide you as what you have to do and in this one to use for is not evident, maybe if at any part of the instructions they have used the words iterate, or for each one, etc, implying you have to for each element on a list, and not just strip…

1 Like

Is there a way to solve this exercise using list comprehensions? And if so, how?

Essentially, write the loop inside list brackets…

b = [x.strip() for x in a]
2 Likes

I’m considering switching over to another learning site, it just doesn’t worth my money and time to get exercises where I have to use things I just haven’t learned yet.
how do you expect people to resolve this if at this point they haven’t seen anything about loops, list or the use of .append?
it’s just ridiculous!

1 Like

hello my friend. actually we have been through lists AND loops. just look at the python 3 syllabus. number 4 is lists and number 5 is loops. i don’t have a strong memory but im pretty sure that append should be in the Lists section.

Happy coding!!

i really know how you feel …
but i think it’s a good way to learn coding by this way … you just need to think every time before solving your problem … so here, codecademy told u that .strip() is working with strings not lists , so you need to iterate every element in the list (not the whole list) with for loop or any other loops , because every element is a string and .strip() is working with strings .

1 Like