我有2d列表mainlist
mainlist = [['John','Doe',True],['Mary','Jane',False],['James','Smith',False]]
slist1 = ['John', 'Doe']
slist2 = ['John', 'Smith']
slist3 = ['Doe', 'John']
slist4 = ['John', True]
如何确定子列表的子列表是否存在于这样一个列表中:如果对mainlist测试slist1,则返回True,而slist2将返回False
我在想这样的事情(来自here的代码)
for sublist in mainlist:
if all(i in sublist for i in slist1):
return True
break
有没有更“Python”的方法?谢谢
编辑:
所以基本上,我只是测试slist是否在mainlist[x]的前2个索引中
既然OP没有回应,我将报道这两个案例。你知道吗
如果顺序不重要,则
['John', 'Doe']
和['Doe', 'John']
都假定包含在mainlist
中:如果顺序确实重要;
['John', 'Doe']
包含但['Doe', 'John']
不在mainlist
:似乎要检查
mainlist
中每个列表中的子列表是否有slist1
或slist2
。在这种情况下,您可以执行以下简单操作:或者用^{} 的较短解:
其工作原理如下:
注意:这还假设您正在检查相邻的子列表,其中顺序很重要。你知道吗
如果我理解了你的问题,我想你可以用
set()
和集合之间的交集,比如这个例子:PS:这个解决方案有很多缺点。。。而且也不包括所有的案子。你知道吗
相关问题 更多 >
编程相关推荐