Python 函数返回字典中的值

Python 函数返回字典中的值,python,function,dictionary,key,return-value,Python,Function,Dictionary,Key,Return Value,这是我的字典: seven_segment = {'0': {'a','c','d','e','b','f'}, '1': {'c','b'}, '2': {'a','d','e','b','g'}, '3': {'a','c','d','b','g'}, '4': {'g','c','f','b'}, '5': {'a','c

这是我的字典:

seven_segment = {'0': {'a','c','d','e','b','f'},
                 '1': {'c','b'},
                 '2': {'a','d','e','b','g'},
                 '3': {'a','c','d','b','g'},
                 '4': {'g','c','f','b'},
                 '5': {'a','c','d','g','f'},
                 '6': {'a','c','d','e','g','f'},
                 '7': {'a','c','b'},
                 '8': {'a','c','d','e','b','g','f'},
                 '9': {'a','c','d','b','g','f'}}
我创建了一个函数:

def guess_damaged(display, state, damaged):
    sorted_state = ''.join(sorted(state))
    sorted_damaged = ''.join(sorted(damaged))
    for key in display:
        templist = list(display[key])
        templist = sorted(templist)
        templist = ''.join(templist)
        if(templist == sorted_state):
            return {key for key,value in display.items() if all(sorted_damaged in value for sorted_damaged in sorted_state)}


print(guess_damaged(seven_segment, 'adeg', 'bf'))
print(guess_damaged(seven_segment, 'abed', 'cf'))
print(guess_damaged(seven_segment, '', 'abcdefg'))
我的当前输出如下所示:

None
None
None
但是,这是我想要的输出:

{'2'}
{'0'}
{'4', '5', '1', '8', '7', '6', '3', '0', '2', '9'}

如何获得所需的输出?

七段字典中没有值在排序时等于'adeg'或'abed'或',因此带有“if(templast==sorted\u state):”的行永远不会为真 我想这就是你想要的:

seven_段={'0':{'a','c','d','e','b','f'},
'1':{'c','b'},
'2':{'a','d','e','b','g'},
'3':{'a','c','d','b','g'},
'4':{'g','c','f','b'},
'5':{'a','c','d','g','f'},
'6':{'a','c','d','e','g','f'},
'7':{'a','c','b'},
'8':{'a','c','d','e','b','g','f'},
'9':{'a','c','d','b','g','f'}
def GUSE_损坏(显示器、状态、损坏):
返回{
钥匙
对于键,display.items()中的值
如果设置(状态)=(值-设置(损坏))
}
打印(猜测是否损坏(七段,'adeg','bf'))
打印(猜测是否损坏(七段,'abed','cf'))
打印(猜测是否损坏(七段,,'abcdefg'))
输出:

{'2'}
{'0'}
{'7', '1', '5', '0', '9', '4', '2', '6', '3', '8'}

解释
set
是非常强大的内置类
您可以使用
设置执行以下操作:

  • 联合体(
    |
  • 相交(
    &
  • 差异(
    -
  • 对称差(
    ^
  • 子集关系(
    =
  • 相等(
    =
    !=

你能加上七段的值吗?@BoseongChoi哦,是的,我忘了。谢谢你指出这一点
sorted\u-damaged=''。join(sorted(damaged))
未使用(我想IDE已经告诉过您)。它是有意的吗?
templast==sorted\u state
没有这种情况。你的期望是什么?哦,我知道它的目的。我不知道你可以在一组中减去字符串!!