Как искать слово в строке словаря в списке?

1
def SearchEntryComment():
    print("\n\nSearch for guestbook comment with a keyword\n")
    CommentSearch = input("Enter key word for search: ")
    for i in range(len(dlGuestBook)):
        if CommentSearch in dlGuestBook[i]["Comment"]:
            print(i+1, ".", dlGuestBook[i] ["FirstName"], dlGuestBook[i]["LastName"], dlGuestBook[i]["Date"])
            print(dlGuestBook[i]["Comment"], "\n")
        else:
            print("No results found")
    print("\n")

Это мой текущий код, однако, когда я запускаю его для каждого элемента в списке, он будет печатать "никаких результатов не найдено", и если он там, он напечатает его. Я хочу, чтобы он печатал результаты, которые есть или просто не найдены.

  • 0
    Перед входом в цикл for установите для переменной с именем found значение False . Если что-то найдено, установите для него значение True . Когда цикл будет завершен, вы узнаете, печатать ли сообщение «ничего не найдено».
Теги:
list
dictionary
search

2 ответа

1
Лучший ответ

просто используя resultCount для сохранения количества результатов, найденных в списке, и проверьте цикл count after for.

def SearchEntryComment():
    print("\n\nSearch for guestbook comment with a keyword\n")
    CommentSearch = input("Enter key word for search: ")
    resultCount = 0
    for i in range(len(dlGuestBook)):
        if CommentSearch in dlGuestBook[i]["Comment"]:
            print(i+1, ".", dlGuestBook[i] ["FirstName"], dlGuestBook[i]["LastName"], dlGuestBook[i]["Date"])
            print(dlGuestBook[i]["Comment"], "\n")
            resultCount += 1
    if resultCount == 0:
        print("No results found")
    print("\n")
1

Посмотрите внимательно на то, что делает цикл for.

for i in range(len(dlGuestBook)): # for each entry in the guestbook
        if CommentSearch in dlGuestBook[i]["Comment"]:
            # print the comment
        else:
            print("No results found")

Я думаю, что вы хотите только напечатать "Нет результатов" после завершения цикла, если он не нашел никаких результатов. Что-то вроде этого может быть решением.

foundComment = False
for i in range(len(dlGuestBook)):
    if CommentSearch in dlGuestBook[i]["Comment"]:
        foundComment = True
        # print the comment

if not foundComment:
    print("No results found")
  • 2
    Оно должно быть False и True а не false или true .
  • 0
    этот не совсем работает, так как для всех предыдущих результатов он все равно не будет отображаться. например, если бы у третьего был комментарий от CommentSearch, он не отображал бы ни результатов, ни комментариев, но я понимаю, что вы имеете в виду

Ещё вопросы

Сообщество Overcoder
Наверх
Меню