1
我有一个功能,我打电话数千次。它基于约25个变量的值区分约40个不同的情况。每个变量有2到10个可能的值。由于每个值的可能性并不很大,只有40个我感兴趣的案例,所以我想让每个答案都是一个0到9之间的整数,并将这些整数组合成与按位运算符相似的整数。一旦结合起来,它们就可以作为字典的关键字来检索我正在寻找的类型。有没有人知道这个解决方案的现有实现,它被称为什么,或者我可以在哪里阅读更多信息?我试图用C++或Python解决这个问题。这里的动机是避免大量的逻辑陈述模糊代码。另外,由于每个变量都是完全独立的,只需使用if/else和/或switch语句,我最终不得不多次检查每个可能值的每个变量,因为并非所有不同类型都整齐地分组到大部分逻辑的类别中。所以这个解决方案可以使代码更易读,更高效。下面是这类事情的Python的例子我想要做的事:在字典中分组memoized解决方案
type_dict = {111: 'Type 1',
112: 'Type 2',
113: 'Type 3',
# ...
537: 'Type 32'} # etc.
answers = []
for each_run in list_of_scenarios:
# Based on a bunch of logic, determine the value of each variable
var_a = 5
var_b = 3
var_c = 7
# Combine these variables to one key
this_key = 100*var_a + 10*var_b + var_c
answers.append(type_dict[this_key])
回答这个问题,介绍了如何用C实现一个类似的解决方案++:http://stackoverflow.com/questions/1842941/translating-python-dictionary-to-c – Alex
这是否对你的工作? –
是的,这是有效的。 – Alex