Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I count unique values inside a list

So I'm trying to make this program that will ask the user for input and store the values in an array / list.
Then when a blank line is entered it will tell the user how many of those values are unique.
I'm building this for real life reasons and not as a problem set.

enter: happy enter: rofl enter: happy enter: mpg8 enter: Cpp enter: Cpp enter: There are 4 unique words! 

My code is as follows:

# 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: 

..and that's about all I've gotten so far.
I'm not sure how to count the unique number of words in a list?
If someone can post the solution so I can learn from it, or at least show me how it would be great, thanks!

like image 357
Joel Aqu. Avatar asked Sep 05 '12 13:09

Joel Aqu.


People also ask

How do you count the number of unique items in an Excel list?

You can use the combination of the SUM and COUNTIF functions to count unique values in Excel. The syntax for this combined formula is = SUM(IF(1/COUNTIF(data, data)=1,1,0)). Here the COUNTIF formula counts the number of times each value in the range appears.

How do you count unique strings in a list Python?

In the numpy library, we will use numpy. unique() function, which returns the unique value of the input list. We can also return the count of each unique value if the return count parameter is set to be True.


2 Answers

In addition, use collections.Counter to refactor your code:

from collections import Counter  words = ['a', 'b', 'c', 'a']  Counter(words).keys() # equals to list(set(words)) Counter(words).values() # counts the elements' frequency 

Output:

['a', 'c', 'b'] [2, 1, 1] 
like image 156
Vidul Avatar answered Sep 21 '22 11:09

Vidul


You can use a set to remove duplicates, and then the len function to count the elements in the set:

len(set(new_words)) 
like image 26
codebox Avatar answered Sep 21 '22 11:09

codebox