【问题标题】:Rewriting the values in a dictionary automatically from a function's output从函数的输出自动重写字典中的值
【发布时间】:2022-07-12 01:11:32
【问题描述】:

我正在尝试用 Python 编写一个猜谜游戏。我有一个名为 bingo_calculator() 的函数,它从字典值中获取 12 个字符的 Y/N 字符串作为参数(即 YNNYNNYNYYYN),然后根据游戏规则返回一个整数值。

我的方法是制作字典的副本(这样原始猜测不会被覆盖)并让函数计算整数值并将复制的字典中的字符串替换为新的计算值。从那里,我想按降序对整数进行排序。我不知道如何使字典的值自动更新对应于函数的输出。

bingo_entries_190_copy = bingoGuesses190.bingo_entries_190.copy() #makes a copy of the dictionary
for value in bingo_entries_190_copy.values():
       print(bingo_calculator(value)) # outputs the integers on the terminal 

这是字典的一个示例:

bingo_entries_190_copy = {

    'Craig': 'NNNNNYNYNYYY',
    'Hirohito': 'YNNNNNNYNYNN',
    'Elemér': 'NYNNYNYYNYYY',
    'Muddy': 'NNYNYNYYNNYY',
    'Kamen': 'NNNNNYYYYYYN',
    'Hiram': 'NNYNNNYNNNYY',
    'Rin': 'NYNNNYYBYNNN',
    'Gessica':  'YNNNNYNYNYNN',
    'Pavlina': 'NNNYNYNNNNYY'
}

期望的输出是:

bingo_entries_190_copy = {

    'Craig': 160,
    'Hirohito': 30,
    'Elemér': 160,
    'Muddy': 480,
    'Kamen': -30,
    'Hiram': 380,
    'Rin': -110,
    'Gessica':  10,
    'Pavlina': 430
}

当 12 个字符的 Y/N 字符串通过 bingo_calculator() 时返回整数。然后我需要根据整数按降序对这些条目进行排序。

我该怎么办?

【问题讨论】:

  • 能否请您添加该词典的样本以及所需的输出?更容易理解。

标签: python dictionary


【解决方案1】:

您可以简单地将新值映射到字典中的每个名称键。以下是我将如何编辑您的代码来做到这一点:

bingo_entries_190_copy = bingoGuesses190.bingo_entries_190.copy() #makes a copy of the dictionary
for key in bingo_entries_190_copy.keys():
       bingo_entries_190_copy[key] = bingo_calculator(bingo_entries_190_copy[key])

希望对你有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 1970-01-01
    相关资源
    最近更新 更多