Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果列表中存在值,则搜索时会出现奇怪的结果_Python - Fatal编程技术网

Python 如果列表中存在值,则搜索时会出现奇怪的结果

Python 如果列表中存在值,则搜索时会出现奇怪的结果,python,Python,这是我遇到问题的代码区域。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): pr

这是我遇到问题的代码区域。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!
[0,0]
[0, 0]
他们是一样的!

值和类型相同,但当我看不到“列表中存在编号”时当我在命令行上测试
list\u name.index(value)
时,它可以工作,但在这里不行。我做错了什么?

方法
list.index()
返回列表中其参数的索引,如果找不到参数,则引发
ValueError
。支票

if T3.index(num):
基本上测试参数的索引是否为非零,但在您的示例中它恰好为零,因此检查失败。您可能想测试该项是否包含在列表中--使用


为此。

方法
list.index()
返回列表中其参数的索引,如果未找到该参数,则引发
ValueError
。支票

if T3.index(num):
基本上测试参数的索引是否为非零,但在您的示例中它恰好为零,因此检查失败。您可能想测试该项是否包含在列表中--使用


为此。

问题在于这一行代码:

if T3.index(num):
            print 'number exists in list!'
列表的
index()
方法执行以下操作:“返回值为x的第一个项目列表中的索引。如果没有此类项目,则为错误。”


在列表中,要查找的第一个值(0)位于索引0处。if语句将零值视为False,并且正确地不执行任何操作。

问题出在这行代码中:

if T3.index(num):
            print 'number exists in list!'
列表的
index()
方法执行以下操作:“返回值为x的第一个项目列表中的索引。如果没有此类项目,则为错误。”


在列表中,要查找的第一个值(0)位于索引0处。if语句将零值视为False,并且正确地不执行任何操作。

谢谢,它工作得很好。我试图简化示例,但是T3.index(num)语句实际上被包装在一个try语句中。我知道Try不适合流量控制,你的方法实际上向我展示了一种我不需要使用的方法。谢谢你,你教了我两件事(一件的价格)。谢谢你,它工作得很好。我试图简化示例,但是T3.index(num)语句实际上被包装在一个try语句中。我知道Try不适合流量控制,你的方法实际上向我展示了一种我不需要使用的方法。谢谢你,你教会了我两件事(一件的代价)。