如何计算列表中出现的唯一值

2022-02-20 00:00:00 python arrays loops variables unique

问题描述

所以我正在尝试编写此程序,该程序将要求用户输入并将值存储在数组/列表中。
然后,当输入空行时,它将告诉用户其中有多少值是唯一的。
我构建这个是出于现实生活的原因,而不是作为习题集。

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重构您的代码:

from collections import Counter

words = ['a', 'b', 'c', 'a']

Counter(words).keys() # equals to list(set(words))
Counter(words).values() # counts the elements' frequency

输出:

['a', 'c', 'b']
[2, 1, 1]

相关文章