Q:

Why rstrip don't modify list of strings

Why rstrip don't modify list of strings named instrumentList
for instrument in instrumentList:
    instrument = instrument.rstrip()

A:

In Python, a str is immutable; you cannot change it in place.  You can see this with id (same id means same object):
>>> instrument = "guitar "
>>> id(instrument)
50103936
>>> instrument = instrument.strip()
>>> id(instrument)
49968576 # different object

rstrip returns a new str object, assigning this to instrument doesn't change the list the object also referenced by instrument is in; the list still references the old object:
>>> instruments = ["guitar "]
>>> id(instruments[0])
50103968
>>> instrument = instruments[0]
>>> instrument = instrument.rstrip()
>>> id(instrument)
49968576 # different object
>>> id(instruments[0])
50103968 # still the same in list

A list is mutable, so if you have a list of objects you can change it in-place, i.e. without creating a new object, for example by adding a new item:
>>> instruments = ["guitar"]
>>> id(instruments)
50116048
>>> instruments.append("piano")
>>> instruments
['guitar', 'piano'] # more items
>>> id(instruments)
50116048 # same object

Or (which is what you want to do), change which object a particular index references:
for index, instrument in enumerate(instruments):
    instruments[index] = instrument.rstrip() # assign new object back into list

Although ramcdougal's list comprehension is certainly neater. 

A:

You are redefining the local instrument instead of changing the value in the list. 
Try:
instrumentList = [instrument.rstrip() for instrument in instrumentList]

