what does 'if x.strip( )' mean?

Danrex picture Danrex · Jun 23, 2013 · Viewed 12.4k times · Source

So I was having problems with a code before because I was getting an empty line when I iterated through the foodList.

Someone suggested using the 'if x.strip():' method as seen below.

for x in split:
  if x.strip():
    foodList = foodList + [x.split(",")]

It works fine but I would just like to know what it actually means. I know it deletes whitespace, but wouldn't the above if statement be saying if x had empty space then true. Which would be the opposite of what I wanted? Just would like to wrap my ahead around the terminology and what it is doing behind the scenes.

Answer

BrenBarn picture BrenBarn · Jun 23, 2013

In Python, "empty" objects --- empty list, empty dict, and, as in this case, empty string --- are considered false in a boolean context (like if). Any string that is not empty will be considered true. strip returns the string after stripping whitespace. If the string contains only whitespace, then strip() will strip everything away and return the empty string. So if strip() means "if the result of strip() is not an empty string" --- that is, if the string contains something besides whitespace.