首页 > 解决方案 > 在python中查找两个不同列表中的值是否匹配

问题描述

晚上好!在我的项目中,我有两个按钮可以选择向左或向右。正确的路径是存储在 self.path 变量中的路径。在我的 def 函数中,我试图打印路径是否正确,但我遇到了问题:当开始按下左按钮时,第一个 if 语句不打印“正确”,第二个 if声明也不起作用(每次按下按钮时它都应该匹配 self.path 和 self.chance 存储的值,并告诉我答案是否正确)有人可以帮助我吗?

        self.path = ["left", "left", "right"]         

        self.chance = []
 
        self.button_left  = tk.Button(self, text="left", command=self.left)
        self.button_right = tk.Button(self, text="right", command=self.right)
        self.button_left.grid(row=0, column=1)
        self.button_right.grid(row=0, column=0)

    def left(self):
         self.chance.append("left")   
         self.function()
        

    def right(self):
        self.chance.append("right")
        self.function()
        

    def function(self):
        if len(self.chance) == 0 and self.chance[0] == self.path[0]:         
            print("correct")     
        else:
            print("wrong")      
           
        if len(self.chance) >= 1:
            item_list += 1
            self.chance[item_list] == self.path[item_list]
            print("correct")
        else:
            print("wrong")

标签: pythontkinter

解决方案


对于第一个 if 语句,它不可能self.chance是一个空列表 ( len(self.chance) == 0) 并且self.chance[0]存在。因此,第一个 if 语句将始终打印wrong

对于第二个 if 语句,其中有一行代码说self.chance[item_list] == self.path[item_list],这只是一个不做任何事情的比较。我假设这个比较是你想放在你的 if 语句中的那个,而不是len(self.chance) >= 1?


推荐阅读