Let us see how to combine similar characters in a list.
Example :
Input : [‘g’, ‘e’, ‘e’, ‘k’, ‘s’, ‘f’, ‘o’, ‘r’, ‘g’, ‘e’, ‘e’, ‘k’, ‘s’]
Output : [‘gg’, ‘eeee’, ‘kk’, ‘ss’, ‘f’, ‘o’, ‘r’]
We will be using the get() method of the dictionary class.
dictionary.get()
The get() method returns the value of the item with the specified key.
Syntax : dictionary.get(key name, value)
Parameters :
- keyname : The key name of the dictionary item.
- value : (Optional) If the specified key does not exist, then a value is returned.
Returns : Value of the item with the specified key
Algorithm :
- Declare the list.
- Declare a dictionary.
- Iterate over the list, using the get() method, if a new key is found, then the value 0 is assigned to it and 1 is added making the final value 1. Else if the key is repeated, then 1 is added to the previously calculated value. So this way, now each key has a value assigned to it, and frequency of all characters is recorded.
- Separate all the keys and the values and store them in 2 different lists.
- Use the zip() function store the product of keys and their respective values in the result list.
- Display the result.
Example 1 :
python3
# declaring the list of characters mylist = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' , 's' ] # declaring the dictionary dictionary = {} # counting the frequency of the keys for key in mylist: dictionary[key] = dictionary.get(key, 0 ) + 1 # storing the of keys and values k = list (dictionary.keys()) v = list (dictionary.values()) # declaring the result list result = [] # storing the product of keys and # their respective values in result for i, j in zip (k, v): result.append(i * j) # displaying the result print (result) |
Output :
['gg', 'eeee', 'kk', 'ss', 'f', 'o', 'r']
Example 2 :
python3
# declaring the list of characters mylist = [ 'p' , 'y' , 't' , 'h' , 'o' , 'n' , 't' , 'u' , 't' , 'o' , 'r' , 'i' , 'a' , 'l' ] # declaring the dictionary dictionary = {} # counting the frequency of the keys for key in mylist: dictionary[key] = dictionary.get(key, 0 ) + 1 # storing the of keys and values k = list (dictionary.keys()) v = list (dictionary.values()) # declaring the result list result = [] # storing the product of keys and # their respective values in result for i, j in zip (k, v): result.append(i * j) # displaying the result print (result) |
Output :
['a', 'h', 'i', 'l', 'n', 'oo', 'p', 'r', 'ttt', 'u', 'y']