2个需要用其值计算的字典

2024-06-01 18:01:01 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我有两个字典。第一个字典是我的程序给用户的字母列表(我正在拼字)

所以我的程序会给用户一个包含七个随机字母的列表:

display_hand({'a':1, 'q':1, 'l':2, 'm':1, 'u':1, 'i':1})

字典中键的值意味着该字母的出现次数,因此在本例中,字母l的出现次数为2次

但是现在我创建了一个新字典,要求用户用这些字母造出一个单词:我使用以下代码:

def histogram(s):
    d = dict()
    for c in s:
        if c not in d:
            d[c] = 1
        else:
            d[c] += 1
    return d


h = histogram(raw_input("what word do you make out of these letters?"))
print h

因此,如果我选择“使目标”这个词,那么这个函数的结果将是:

{'a': 1, 'i': 1, 'm': 1} 

但是我只是不知道如何从这本词典中提取这本词典。你知道吗

因为现在应该在下面两个字典中的一个中更改显示\u手部字典:

display_hand({'q':1, 'l':2, 'u':1})
display_hand({'a':0, 'q':1, 'l':2, 'm':0, 'u':1, 'i':0})

这是因为我用了我的字母:A,i和M

如果有人能帮我解决这个问题,那就太好了,无论如何已经非常感谢了!你知道吗


Tags: 代码用户in程序列表字典display字母
1条回答
网友
1楼 · 发布于 2024-06-01 18:01:01

如果输入字是aim,则输出为{'a':0, 'q':1, 'l':2, 'm':0, 'u':1, 'i':0}

import collections

d = {'a':1, 'q':1, 'l':2, 'm':1, 'u':1, 'i':1}

inp_list = list(raw_input())

user_h = collections.Counter(inp_list)

for key in user_h:
    if key in d:
        d[key] = d[key] - user_h[key]

print d

inp\u list是输入字符串中的字符列表,user\u h是输入单词的字典。然后您可以迭代字典以获得所需的输出。您还可以检查一个键的值是否为负数(这应该被阻止)。你知道吗

希望有帮助!你知道吗

相关问题 更多 >