Как посчитать список слов из списка в python - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть следующий список:

fruits = [“apple”, “banana”, “grape”, “kiwi”, “banana”, “apple”, “apple”, “watermelon”, “kiwi”, “banana”, “apple”,]

Теперь мне нужно разработать функцию count_the_fruits, которая бы принимала в качестве аргументов список фруктов и список переменных аргументов, называемых словами , Функция должна использовать словарное понимание, чтобы создать словарь слов (ключ) и их соответствующие значения (значение).

words = ["apple", "banana", "kiwi"]

Ожидаемый результат: {apple: 4, 'banana': 3, 'kiwi': 2}

Любая помощь будет принята с благодарностью. Спасибо!

Ответы [ 3 ]

0 голосов
/ 10 февраля 2020

Причина, по которой он дает вам только один счет, состоит в том, что вы ищете только один. Попробуйте это:

fruits = ['apple', 'banana', 'grape', 'kiwi', 'banana', 'apple',
          'apple', 'watermelon', 'kiwi', 'banana', 'apple']
words = ["apple", "banana", "kiwi"]

def count_the_fruits(fruits, words):
    # This is a dict comprehension
    counts = {word: fruits.count(word) for word in words}
    return counts

print(count_the_fruits(fruits, words))

Вывод:

{'apple': 4, 'banana': 3, 'kiwi': 2}
0 голосов
/ 10 февраля 2020

Я понял, парень, но постарайся лучше задать свои вопросы.

words =[]


def count_the_fruits():
    for fruit in fruits:
        if words.count(fruit) >=1:
            continue
        words.append((fruit, fruits.count(fruit)))
    print(words)


fruits = ["apple", "banana","grape", "kiwi", "banana", "apple", "apple", "watermelon", "kiwi", "banana", "apple"]
count_the_fruits()
0 голосов
/ 10 февраля 2020

Как насчет?

def count_the_fruits(fruits, fruits_to_check_for):

    # initialize variables:
    fruit_count = {}

    # iterate over each fruit in fruit list:
    for fruit in fruits_to_check_for:

        # count number of occurences:
        number_of_fruits = len([x for x in fruits if x==fruit])

        # add to dictionary:
        fruit_count[fruit] = number_of_fruits

    return fruit_count



if __name__ == '__main__':

    fruits = ['apple', 'banana', 'grape',       'kiwi', 
              'banana',  'apple', 'apple', 'watermelon', 
                'kiwi', 'banana', 'apple',]

    fruits_to_check_for = ['apple', 'banana']

    result = count_the_fruits(fruits, fruits_to_check_for)

    print(result)
...