Создание программы, которая ищет, повторяется ли слово и сколько раз оно находится в списке, - PullRequest
0 голосов
/ 06 марта 2019

Пока что я создал это:

    a = str(input("Word 1 = "))
    b = str(input("Word 2 = "))
    c = str(input("Word 3 = "))
    d = str(input("Word 4 = "))
    e = str(input("Word 5 = "))
    f = str(input("Word 6 = "))

words = [a, b, c, d, e, f]

def count_words(words):
    for i in words:
        wordscount = {i:words.count(i)}
        print(wordscount)

count_words(words)

И вот что получается:

{'word': 6}
{'word': 6}
{'word': 6}
{'word': 6}
{'word': 6}
{'word': 6}

И мой вопрос: как мне сделать так, чтобы он не печатался?ключ в списке, если он уже есть, например, не выше, но это:

{'word': 6}

Ответы [ 3 ]

2 голосов
/ 06 марта 2019

Вы должны нарезать массив и проверить, не было ли проверено слово, которое вы собираетесь напечатать.

def count_words(words):
    for index, i in enumerate(words):
        wordscount = {i:words.count(i)}
        if i not in words[0:index]:
            print(wordscount)

Смотрите также, что я использовал enumerate(), чтобы отслеживать индекс внутритвоя петля.

0 голосов
/ 07 марта 2019

Чтобы не считать слова более одного раза, вы можете использовать набор в цикле for i in words:: замените его на for i in set(words):

Вы также можете использовать класс Counter () из iterTools:

from itertools import Counter
print( Counter(words) )
0 голосов
/ 06 марта 2019

Прежде всего, добро пожаловать в переполнение стека!

Решение вашей проблемы будет включать инициализацию другого списка, который, вероятно, называется words_mentioned над вашим циклом, и добавление к нему слов, которые вы уже напечатали. Если слово в words_mentioned, не печатайте его. Конечный код будет выглядеть так:

a = str(input("Word 1 = "))
b = str(input("Word 2 = "))
c = str(input("Word 3 = "))
d = str(input("Word 4 = "))
e = str(input("Word 5 = "))
f = str(input("Word 6 = "))

words = [a, b, c, d, e, f]
words_mentioned = []

def count_words(words):
    for i in words:
        wordscount = {i:words.count(i)}
        if i not in words_mentioned:
            print(wordscount)
            words_mentioned.append(i)

count_words(words)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...