Итак, я пытаюсь создать эту программу, которая будет запрашивать у пользователя ввод и сохранять значения в массиве / списке.
Затем, когда вводится пустая строка, пользователю сообщается, сколько из этих значений уникально.
Я строю это по причинам реальной жизни, а не как набор задач.
enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!
Мой код выглядит следующим образом:
# ask for input
ipta = raw_input("Word: ")
# create list
uniquewords = []
counter = 0
uniquewords.append(ipta)
a = 0 # loop thingy
# while loop to ask for input and append in list
while ipta:
ipta = raw_input("Word: ")
new_words.append(input1)
counter = counter + 1
for p in uniquewords:
..и это все, что я получил до сих пор.
Я не уверен, как подсчитать уникальное количество слов в списке?
Если кто-то может опубликовать решение, чтобы я мог извлечь из него уроки или хотя бы показать мне, как это было бы здорово, спасибо!
Ответы:
Кроме того, используйте collections.Counter для рефакторинга кода:
Вывод:
источник
Counter(words).values()
это мило. Мы предполагаем, что счет идет в порядке первого появления в списке слов? Я имею в виду, я предполагаю, что счет даст нам количество a, затем b, затем c, затем d ...count_dict = {'a': 2, 'b': 1, 'c': 1}
вы можете это сделатьcount_dict = dict(Counter(words).items())
Вы можете использовать набор для удаления дубликатов, а затем функцию len для подсчета элементов в наборе:
источник
values, counts = np.unique(words, return_counts=True)
источник
Используйте набор :
Вооружившись этим, ваше решение может быть таким простым, как:
источник
источник
Для ndarray есть метод numpy с именем unique :
Примеры:
Для Серии есть вызов функции value_counts () :
источник
источник
Хотя набор - это самый простой способ, вы также можете использовать dict и использовать
some_dict.has(key)
для заполнения словаря только уникальными ключами и значениями.Предполагая, что вы уже заполнили
words[]
ввод от пользователя, создайте dict, сопоставляющий уникальные слова в списке с числом:источник
Другой метод с использованием панд
Затем вы можете экспортировать результаты в любом формате.
источник
Как насчет:
Возвращает количество уникальных значений в списке.
источник
pandas
фреймворка. Лучше упомянуть об этом в ответе, так как это может быть непонятно другим пользователям.Следующее должно работать. Лямбда-функция отфильтровывает повторяющиеся слова.
источник
Я бы сам использовал набор, но вот еще один способ:
источник
источник