使用不同字符作为值的字典

Dictionary using distinct characters as values

我需要使用字符串列表作为键并使用它们的不同字符作为值来制作字典。

我已经尝试了一些函数并最终得到了以下代码,但我似乎无法将字符串键添加到其中

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))

我想得到

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

但我不断收到

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

好吧,字符串本身就是一个可迭代的,所以不要在字典上调用列表,而是在元组列表上调用字典,如下所示。

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)))

输出:

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

考虑简单的字典理解:

value = ["check", "look", "try", "pop"]
result = {key: len(set(key)) for key in value}
print(result)

感谢您的回复 我需要将其作为 class 练习的函数来回答,所以我最终使用了以下代码:

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)))

再次感谢