这是我遇到问题的代码区域。 T1和T3都是列表列表:
for num in T1:
print num
print T3[0]
print type(num)
print type(T3[0])
if num == T3[0]:
print 'they are the same!'
else:
print 'nope they are not!'
if T3.index(num):
print 'number exists in list!'
结果如下:
[0, 0]
[0, 0]
<type 'list'>
<type 'list'>
they are the same!
值和类型相同,但是当我没有看到“列表中存在数字!”时当我在命令行上测试list_name.index(value)
时它可以工作但不在这里。我做错了什么?
答案 0 :(得分:4)
方法list.index()
返回列表中其参数的索引,如果找不到参数,则引发ValueError
。检查
if T3.index(num):
基本上测试参数的索引是否为非零,但在您的示例中恰好为零,因此检查失败。您可能想测试该项是否包含在列表中 - 使用
if num in T3:
为此目的。
答案 1 :(得分:0)
问题在于这行代码:
if T3.index(num):
print 'number exists in list!'
列表的index()
方法执行此操作:“返回值为x的第一个项目列表中的索引。如果没有此类项目,则会出错。”
在列表中,要查找的第一个值(0)位于索引0. if语句将零值视为False,并且无法正常执行任何操作。