我试图对照有效输出字典的键来检查列表的连接内容。我想先看最长最右边的比赛。作为一种直观的帮助,键输入字典的顺序就是我希望输出的优先顺序。你知道吗
我觉得我的解决方案已经走到一半了,但我已经把代码弄得乱七八糟很久了,我的大脑只是在兜圈子。你知道吗
编辑:septra提供了以下代码,它完成了我希望它完成的90%
foo = ['1','2','3']
bar = ['1','2','2','3']
foobar = ['dog','horse']
foodbar = ['2','3','1']
valid_list = {'1 2 3':'1 2 3','2 3':'2 3','1 2':'1 2','3':'3','2':'2','1':'1'}
def validCheck(check, valid_list):
for r in range(len(check)):
key = " ".join(check[r:])
if key in valid_list:
return valid_list[key]
print(validCheck(foo, valid_list))
print(validCheck(bar, valid_list))
print(validCheck(foobar, valid_list))
print(validCheck(foodbar, valid_list))
哪个指纹
'1 2 3'
'2 3'
'None'
'1'
相对于
'1 2 3'
'2 3'
'None'
'2 3'
正如在后面的评论中所说,理想情况下,它也会捕获多个具有相同标准的非重叠有效输入,但我准备暂时取消该功能。那样的话
validCheck(['2','3','1','2'], valid_list)
将打印
['1 2','2 3']
倾向于单个较长的产出,而不是多个较短的产出。你知道吗
这就是你要找的功能吗?你知道吗
这应该考虑最长的>;最右边的要求。你知道吗
相关问题 更多 >
编程相关推荐