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

时间:2019-06-25 12:40:00

标签: python-3.x string dictionary distinct-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}

3 个答案:

答案 0 :(得分:1)

好吧,字符串本身是可迭代的,所以不要在字典上调用list,而在下面的元组列表上调用dict。

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}

答案 1 :(得分:1)

考虑简单的字典理解:

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

答案 2 :(得分:0)

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

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

再次感谢