Cette fonction fait le tour:
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']
L'alternative indiquée par Ignacio est très propre:
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()
...
Renvoie un objet pouvant être appelé qui récupère le (s) élément (s) donné (s) de son opérande. Après f = itemgetter(2)
, l'appel f(r)
renvoie r [2].
Après, g = itemgetter(2,5,3)
, l'appel g(r)
renvoie (r [2], r [5], r [3])
Notez que les positions maintenant la position doit être compté de 0 pour permettre en utilisant directement l'argument de position *
Il semble qu'une réponse ci-dessous travaillé pour vous. Veuillez cocher la case ci-dessous le nombre de votes de cette réponse; De cette façon, votre question est marquée comme "répondue". – tzot
Veuillez commencer à répondre aux questions. C'est comme dire "merci". – ThiefMaster