Search code examples
python-3.xstringdictionarydistinct-values

Dictionary using distinct characters as values


I need to make a dictionary using the string list as keys and their distinct characters as values.

I have tried some functions and ended up with the following code but I cannot seem to add the string key into it

value=["check", "look", "try", "pop"]
print(value)
def distinct_characters(x):
    for i in x:
        yield dict (i=len(set(i)))
print (list(distinct_characters(value))

I would like to get

{ "check" : 4, "look" : 3, "try" : 3, "pop" : 2} 

but I keep getting

{ "i" : 4, "i" : 3, "i" : 3, "i" : 2}

Solution

  • Well, string is itself an iterable, so don't call list on dicts instead call dict on list of tuples like below.

    value=["check", "look", "try", "pop"]
    print(value)
    def distinct_characters(x):
        for i in x:
            yield (i, len(set(i)))
    print(dict(distinct_characters(value)))
    

    Output:

    {'check': 4, 'look': 3, 'try': 3, 'pop': 2}