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
没有这种情况。你的期望是什么?哦,我知道它的目的。我不知道你可以在一组中减去字符串!!