Как создать программу на Python, в которой перечислены позиции и дисплеи и сообщение об ошибке, если не найдено

#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]
  

Подход здесь:

  1. Разбейте свое предложение, то есть sentence_string здесь, на список слов
  2. Разбейте строку word на список слов.
  3. Создайте словарь my_dict для хранения всех индексов слов в word_list
  4. Выполните итерацию 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 Помогло ли это?