Эта функция делает свое дело:
def giveme(s, words=()):
lista = s.split()
return [lista[item-1] for item in words]
mystring = "You have 15 new messages and the size is 32000"
position = (3, 10)
print giveme(mystring, position)
it prints -> ['15', '32000']
Альтернатива, указанная Игнасио, очень чистая:
import operator
mystring = "You have 15 new messages and the size is 32000"
position = (2, 9)
lista = mystring.split()
f = operator.itemgetter(*position)
print f(lista)
it prints -> ['15', '32000']
operator.itemgetter()
...
Возвращает вызываемый объект, который выбирает
данный элемент (ы) из его операнда.
После f = itemgetter(2)
, звонок f(r)
возвращает r [2].
После, g = itemgetter(2,5,3)
, звонок g(r)
возвращает (r [2], r [5], r [3])
Обратите внимание, что теперь позиции в position должны отсчитываться от 0, чтобы можно было напрямую использовать аргумент * position