关于assert语句测试的数据结构及运行异常的技术咨询
问题分析与解决方案
嘿,我来帮你理清这个assert语句的问题!你的判断完全正确,咱们一步步拆解:
核心矛盾点:如果
data用大括号{}定义,那它确实是个字典,此时tone、ttwo、tline会被当作字典的键,而不是你要测试的列表——这就和你要验证「三个列表索引5位置的数据」的逻辑完全不匹配,这肯定是assert跑不起来的原因。正确的结构应该是怎样的:你猜的没错!
data应该是包含tone、ttwo、tline这三个子列表的列表,要用中括号[]来定义,比如:# 先定义三个测试用的列表 tone = [1, 2, 3, 4, 5, "target_tone"] ttwo = [10, 20, 30, 40, 50, "target_ttwo"] tline = [100, 200, 300, 400, 500, "target_tline"] # 正确的data结构:包含三个子列表的列表 data = [tone, ttwo, tline]验证逻辑的修正:这样定义后,你就可以通过索引访问每个子列表的第5位数据了,对应的assert语句就能正常运行:
assert data[0][5] == "target_tone" # 对应tone[5] assert data[1][5] == "target_ttwo" # 对应ttwo[5] assert data[2][5] == "target_tline" # 对应tline[5]
简单来说,就是把data的定义语法从字典的{}改成列表的[],就能让你的测试逻辑和数据结构匹配上啦!
内容的提问来源于stack exchange,提问作者AdeDoyle
相关产品推荐
相关产品推荐

