Jak za pomocą Pythona znaleźć miejsce w zdaniu? Na przykład czwarte słowo w zdaniu.
sentence = "It's a beautiful world."
word = "world"
locate_word(word,sentence) = 4
5 odpowiedzi
Musisz określić, w jaki sposób chcesz podzielić zdanie. Znalazłem przykład z innej odpowiedzi. Możesz to zmodyfikować w zależności od potrzeb.
import re
sentence = "It's a beautiful world."
word = "world"
def locate_word(word, sentence):
# https://stackoverflow.com/a/6181784/12565014
wordList = re.sub("[^\w]", " ", sentence).split()
return wordList.index(word)
locate_word(word,sentence) # output 4
it's
Uważam, że jest to dość proste rozwiązanie i łatwe do odczytania;
sentence = "It's a beautiful world. Worldwide in the world, for the world"
word = "world"
ax = sentence.split(' ')
import re
for i in ax:
if len(re.findall('\\world\\b',i)) > 0:
print(ax.index(i))
Wynik:
3
7
10
W powyższym przykładzie zadziała
import re
sentence = "It's a beautiful world."
word = "world"
lst = sentence.split()
for i in range(0,len(lst)):
if "." in lst[i]:
lst[i] = lst[i].replace(".", "")
print(lst.index(word))
Podziel zdanie (domyślnie jest podzielone spacjami), a następnie przejrzyj listę, którą otrzymałeś. Jeśli twoje słowo znajduje się na liście, zwróci ci jego indeks. A potem dodajesz +1 do indeksu, który masz, ponieważ liczenie list zaczyna się od 0.
import string
def locate_word(word, sentence):
splitted = sentence.split()
indexes = []
for x in splitted:
if word in x and len(word) == len(x.strip(string.punctuation)):
indexes.append(splitted.index(x) + 1)
return print(indexes)
locate_word('worldwide', "It's a worldwide beautiful world. worldwide")
world
jest zawarte w ciągu, na przykład worldwide
, jak wskazał @Reznik.
Możesz podzielić zdanie w odstępach, a następnie wyszukać słowo na liście.
Edycja: na podstawie komentarza może być również konieczne usunięcie interpunkcji.
import string
def locate_word(word, sentence):
sentence = sentence.translate(str.maketrans('', '', string.punctuation))
ListOfWord = sentence.split(" ")
return ListOfWord.index(word)
it's
Podobne pytania
Powiązane pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.
sentence.split()
daje["It's", 'a', 'beautiful', 'world.']
, a"world."
to nie to samo co"world"
. Możesz więc usunąć interpunkcję z ciągu (sentence = sentence.translate(str.maketrans('', '', string.punctuation))
), ale zmieni to również"It's"
na"Its"
.