Quel est le meilleur moyen de couper le dernier mot d'un bloc de texte?
Je peux penser à
Je suis en train de prendre l'approche n ° 1, mais je ne sais pas comment concaténer la liste ...
content = content[position-1:position+249] # Content
words = string.split(content, ' ')
words = words[len[words] -1] # Cut of the last Word
Tous les exemples de code sont très appréciés.
En fait, vous n'avez pas besoin de séparer tous les mots. Vous pouvez diviser votre texte par le dernier symbole d'espace en deux parties en utilisant rsplit .
Quelques exemples:
>>> text = 'Python: Cut of the last Word of a sentence?'
>>> text.rsplit(' ', 1)[0]
'Python: Cut of the last Word of a'
rsplit
est un raccourci pour "reverse split", et contrairement à split
normal fonctionne à partir de la fin d'une chaîne. Le deuxième paramètre est un nombre maximal de divisions à effectuer - par exemple. La valeur de 1
vous donnera une liste de deux éléments (étant donné qu’un seul fractionnement a été fait, ce qui a entraîné deux parties de la chaîne d’entrée).
Vous devez absolument scinder puis supprimer le dernier mot, car une expression rationnelle entraînera à la fois plus de complications et de frais généraux inutiles. Vous pouvez utiliser le plus de code Pythonic (en supposant que le contenu est une chaîne):
' '.join(content.split(' ')[:-1])
Cela divise le contenu en mots, prend tout sauf le dernier mot et rejoint les mots avec des espaces.
Si vous aimez la compacité:
' '.join(content.split(' ')[:-1]) + ' ...'
Si vous souhaitez conserver votre méthode actuelle, utilisez ' '.join(words)
pour concaténer la liste.
Vous pouvez également vouloir remplacer words = words[len[words -1]
par words = words[:-1]
pour utiliser le découpage en tranches.
OU
import re
print ' '.join(re.findall(r'\b\w+\b', text)[:-1])
' '.join(words)
remettra la liste.
Obtenir le dernier index de l'espace et épisser la chaîne
>>> text = 'Python: Cut of the last Word of a sentence?'
>>> text[:text.rfind(' ')]
'Python: Cut of the last Word of a'