split string in python to get one value?

Assign the first item directly to the variable.

>>> string = 'Sam-Person'
>>> name = string.split('-')[0]
>>> name
'Sam'

You can specify maxsplit argument, because you want to get only the first item.

>>> name = string.split('-', 1)[0]

If you don't need the second part of the split, you could instead try searching the string for the index of the first - character and then slicing to that index:

string[:string.index('-')]

This is a little bit faster than splitting and discarding the second part because it doesn't need to create a second string instance that you don't need.

Be aware that this code will raise an exception if there's no - in the string, as did your original code. A solution using split like falsetru's will return the full string instead (which may or may not be better).