Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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_List_Compare_Sublist - Fatal编程技术网

如何在python中比较子列表

如何在python中比较子列表,python,list,compare,sublist,Python,List,Compare,Sublist,用python a = [1, 0, 0] b = [[1, 0, 1], [1, 0, 0]] 我将列表a与列表b的子列表匹配。 但是为什么打印any(s中的a代表b中的s)会返回False?因为使用any您正在检查列表a是否在字符串列表中,即b中的子列表: if [1, 0, 0] in b[0] # etc.. [1,0,0] in [1, 0, 1] ... 任何逻辑中的每个s都是b中的每个子列表 当你在b中选择a时,你实际上是在检查a是否在列表b中,而不是在它的子

用python

a = [1, 0, 0]
b = [[1, 0, 1], [1, 0, 0]]      
我将列表
a
与列表
b
的子列表匹配。
但是为什么打印
any(s中的a代表b中的s)
会返回False?

因为使用
any
您正在检查列表
a
是否在字符串列表中,即
b
中的子列表:

if [1, 0, 0] in b[0]  #  etc..  [1,0,0] in [1, 0, 1] ...
任何逻辑中的每个
s
都是
b
中的每个子列表


当你在b
中选择a
时,你实际上是在检查a
是否在列表
b
中,而不是在它的子列表中。

因为使用
any
你是在检查列表
a
是否在字符串列表中,即
b
中的子列表:

if [1, 0, 0] in b[0]  #  etc..  [1,0,0] in [1, 0, 1] ...
任何逻辑中的每个
s
都是
b
中的每个子列表


当您在b
if a
中实际检查if
a
是否在列表
b
中,而不是在其子列表中。

[1,0,0]in[[1,0,1],[1,0,0]]
中的[1,0,0]将返回true,因为第一个列表是第二个列表中的子列表之一。您的
任何
呼叫都会询问以下任一项是否正确:

  • [1,0,0]in[1,0,1]
  • [1,0,0]中的[1,0,0]

两者都是错误的。您想要的是[[1,0,1],[1,0,0].
中的
any(a==s表示b中的s)
或(最好)b中的
a
[1,0,0]将返回true,因为第一个列表是第二个列表中的子列表之一。您的
任何
呼叫都会询问以下任一项是否正确:

  • [1,0,0]in[1,0,1]
  • [1,0,0]中的[1,0,0]
两者都是错误的。您需要的是
any(a==s表示b中的s)
或(最好)使用
any(a在s中表示b中的s)
检查列表
a
是否是
b
的任何子列表的元素。如果
x
y
的子字符串(或者甚至是
y
本身),则y中的
x
将返回
True
,如果两者都是字符串,则相同的操作不适用于列表:这里,
x
必须是
y
的元素,而不是子列表

>>> "bcd" in "abcde"
True
>>> list("bcd") in list("abcde")
False
因此,如果您想检查
a
是否在
b
中,您必须在b
中使用
a,或者,如果您想使用
any
any(a==s表示b中的s)
any(a表示b中的s)
一起检查列表
a
是否是
b
的任何子列表的元素。如果
x
y
的子字符串(或者甚至是
y
本身),则y中的
x
将返回
True
,如果两者都是字符串,则相同的操作不适用于列表:这里,
x
必须是
y
的元素,而不是子列表

>>> "bcd" in "abcde"
True
>>> list("bcd") in list("abcde")
False

因此,如果您想检查
a
是否在
b
中,您必须在b
中使用
a,或者,如果您想使用
any
any(a==s表示b中的s)
如果列表
a
是列表
b
的子列表,请运行

a = [1, 0, 0]
b = [[1, 0, 1], [1, 0, 0]]

for x in b:
    if a == x:
        print("YES")

下面的代码将在列表b中运行,如果b中的嵌套列表与列表a匹配,它将
打印(“YES”)
以匹配列表
a
是列表
b
的子列表,请运行

a = [1, 0, 0]
b = [[1, 0, 1], [1, 0, 0]]

for x in b:
    if a == x:
        print("YES")
下面的代码将在列表b中运行,如果b中的嵌套列表与列表a匹配,它将
打印(“YES”)