的Python:通过规则比较列表

问题描述:

输入数据:的Python:通过规则比较列表

rules = (
    ("1|1": "A"), 
    ("2|1": "B"), 
    ("3|1": "C"), 
    ("2|2": "X") 
) 

pattern = [[1,2,3], [7,8]] 

我需要一个函数来进行下面的结果做好这项工作:

list1 = [[1,3,4], [7,9]] # result: B 
list2 = [[1,2,3], [7,9]] # result: C 
list3 = [[0,5,4], [8,5]] # result: None 
list4 = [[1,6,2], [7,8]] # result: X 
list5 = [[1,6,2,5], [7,8]] # result: Error 
+3

你能澄清一下算法吗?我不清楚它是什么。 – 2011-12-24 08:32:46

+0

Definetly需要更多关于它是如何工作的信息,以及它是为了帮助你.. – Oleiade 2011-12-24 08:34:45

+0

此外,我投票结束太局部化,因为,正如描述所说,这个问题是“...只与...一个非常狭窄的情况,通常不适用于互联网的全球受众“。 – 2011-12-24 08:34:49

功能Python的一个位:

>>> rules = { 
    "1|1": "A", 
    "2|1": "B", 
    "3|1": "C", 
    "2|2": "X" 
} 
>>> pattern = [[1,2,3], [7,8]] 
>>> l = [[1,3,4], [7,9]] 
>>> diffs = '|'.join(map(lambda x: str(len(set(x[0]) & set(x[1]))), 
         zip(pattern, l))) 
>>> rules.get(diffs) 
'B' 

与其余列表的作用相同。错误处理是对你的行使:)