有两个列表,在python里如何判定其中一个是另一个的子集?比如
>>> A = [2, 3, 4]
>>> B = [0, 1, 2, 3, 4, 5]
>>> A in B
False 
因为列表B中的元素都是数字,并没有如A一样的list,所以得到False的结果。其实,两个列表的包含关系,可以用for逐个判定
>>> A = [2, 3, 4]
>>> B = [0, 1, 2, 3, 4, 5]
>>> any([A==B[i:i+len(A)] for i in range(0,len(B)-len(A)+1)])
True 
分析 
 首先从B的第i个元素开始,提取长度与A等长的子列表,记作C:
B[i:i+len(A)] 
C只需要滑过整个B即可,所以i的范围不需要到整个B的长度,只需要到len(B)-len(A)+1,滑动的过程中,逐次比较C是否与A相等,得到True或者False的结果,放入结果列表,比如上面的例子里,这个结果是
[False, False, True, False] 
当i为2时,C与A相等。只要有一次匹配相等,就可以判定A是B的子集。用any函数可以实现这种逻辑:只要列表元素至少有一个为真就返回True.
>>> any([False, False, True, False])
True 
                
Python 判断列表子集
        
                  
                  
                  
                  
                            
在Python中,要判断一个列表是否是另一个列表的子集,可以遍历并比较每个元素。通过创建长度与目标子集相等的子列表,并检查它是否与目标子集相等,使用`any()`函数可以简化这一过程。当找到匹配项时,即可确定子集关系。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					5428
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            