#python
#python
Вопрос:
Я сделал этот код:
sentence = input("Type in your sentance ").lower().split()
Word = input("What word would you like to find? ")
Keyword = Word.lower().split().append(Word)
positions = []
for (S, subword) in enumerate(sentence):
if (subword == Word):
positions.append
print("The word" , Word , "is in position" , S 1)
Но с этим есть 2 проблемы; Я не знаю, как написать код, когда пользовательское слово не найдено, а позиции в «Позиция слова находится в [1,3,6,9] .
Любая помощь?
Спасибо
Комментарии:
1. Что должна делать эта строка
Keyword = Word.lower().split().append(Word)
и эта строкаpositions.append
?2. ключевое слово строки = Word.lower().split().append(Word) должно сделать то, что когда-либо было в «Word», строчным и разделить слова
Ответ №1:
В вашем коде несколько ошибок. Я вставляю здесь пример кода для вашей справки:
from collections import defaultdict
sentence_string = raw_input('Enter Sentence: ')
# Enter Sentence: Here is the content I need to check for index of all words as Yes Hello Yes Yes Hello Yes
word_string = raw_input("Enter Words: ")
# Enter Words: yes hello
word_list = sentence_string.lower().split()
words = word_string.lower().split()
my_dict = defaultdict(list)
for i, word in enumerate(word_list):
my_dict[word].append(i)
for word in words:
print "The word" , word, "is in position " , my_dict[word]
# The word yes is in position [21, 23, 24, 26]
# The word hello is in position [22, 25]
Подход здесь:
- Разбейте свое предложение, то есть
sentence_string
здесь, на список слов - Разбейте строку word на список слов.
- Создайте словарь
my_dict
для хранения всех индексов слов вword_list
- Выполните итерацию
words
, чтобы получить результат с индексом, на основе значения, в котором вы сохраняетеmy_dict
.
Примечание: прокомментированная часть в приведенном выше примере в основном является результатом кода.
Ответ №2:
Используйте индекс.
a = 'Some sentence of multiple words'
b = 'a word'
def list_matched_indices(list_of_words, word):
pos = 0
indices = []
while True:
try:
pos = list_of_words.index(word, pos)
indices.append(pos)
pos =1
except:
break
if len(indices):
print(indices)
return indices
else:
print ("Not found")
list_matched_indices(a, b)
Комментарии:
1. @anonymous-user Помогло ли это?