如何在python中比较子列表
用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中,而不是在它的子
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
中的每个子列表
当您在bif a中实际检查ifa是否在列表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”)