的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
答
功能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'
与其余列表的作用相同。错误处理是对你的行使:)
你能澄清一下算法吗?我不清楚它是什么。 – 2011-12-24 08:32:46
Definetly需要更多关于它是如何工作的信息,以及它是为了帮助你.. – Oleiade 2011-12-24 08:34:45
此外,我投票结束太局部化,因为,正如描述所说,这个问题是“...只与...一个非常狭窄的情况,通常不适用于互联网的全球受众“。 – 2011-12-24 08:34:49