我不知道如何使我的匹配系统工作

时间:2017-10-18 19:29:55

标签: python

在我的代码中,我正在做一个匹配系统,你有两个列表,代码为列表中与同一索引相同的每个项目的变量添加一个变量,并且与另一个列表相同的项目,否则它添加一个然后将其中的两个数字放入列表并打印列表。

def report(ticket,winner):
kiss = []
Love = []
x = 0
y = 0 
for number in ticket:
    if number in winner:
        x +=1
    elif ticket not in winner:
            y += 1
kiss.append(x)
kiss.append(y)
print kiss

错误是这样的输入,报告([1,2],[1,2,3])我希望它添加两个到x因为其中两个是在正确的位置并且是相同的那么它需要在y中添加一个因为它在那里而不匹配但是它让我出局:[2,0]如果我输入报告([1,3],[1,2,3])它给了我[2,0]即使你没有在同一指数中。那个输出应该是[1,2]。

2 个答案:

答案 0 :(得分:0)

根据您描述的逻辑,您的代码需要实现一些问题。主要是在{python} in运算符检查项目是否存在 a list中的任何位置,因此对于您的示例始终为{{1}并且你得到了意想不到的输出。

相反,我们想要检查True列表中的每个项目,针对同一索引ticket列表中的每个项目,因此我们必须在检查每个项目时指定索引号。

试试这个:

winner

这些是您的预期产出吗?

希望这有帮助。

答案 1 :(得分:0)

这是使用zip的稍短版本。

def report(ticket, winner):
    z = sum(1 for x, y in zip(ticket, winner) if x == y)
    return [z, max(len(ticket), len(winner)) - z]