python - 在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")
解决方案
对于第一个 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
?
推荐阅读
- php - 订阅身份验证数据中的密钥无效,类型:websocketError
- ios - 使用 CoreBlueTooth L2CAP 通道传输音频文件
- c# - 在.net核心项目中打开文件时有什么方法可以自动运行宏?
- python - Python 的 print 语句后跟 sleep(...) 函数给出了意外的输出
- cassandra - 什么是 Cassandra 存储异常
- java - 复杂的 Maven 项目和 Eclipse
- javascript - 从输入值 onfocusout 设置会话字符串
- python - 如何使用 itertools.product() 每次将其中一个元组作为输出而不是一次提供整个元组列表?
- angular - 如何通过角度访问 eureka 服务器上的 REST API
- bash - 关于 kubectl 导出变量的查询