如何检查子列表中的所有项目是否都在列表中?蟒蛇

时间:2015-07-13 18:11:24

标签: python list

我的问题与上述相同:

如果您有以下2个列表,如何检查第一个列表中的所有项目是否都在第二个列表中。 例如

list_one=[1,2,3]
list_two=[1,2,3,4]

我当前的尝试只是"如果list_two中的所有list_one:"

但这种情况似乎永远不会被填补,所以没有进一步发生。任何帮助将不胜感激,谢谢:)

5 个答案:

答案 0 :(得分:2)

all()函数用于检查是否满足所有条件。我们从list_1获取元素并检查list_2中是否有该元素,如果一切都可用则打印“是”

list_one=[1,2,3] 
list_two=[1,2,3,4]
if all(a in list_two for a in list_one):
    print "yes"

答案 1 :(得分:2)

您可以将all与生成器表达式一起使用,这将允许在找到第二个列表中未出现的第一个元素时发生短路。

>>> list_one=[1,2,3]
>>> list_two=[1,2,3,4]
>>> all(i in list_two for i in list_one)
True

答案 2 :(得分:0)

>>> l1 = [1,2,3,4,5]
>>> l2 = [3,2,1,5,4]
>>> for i in l1:
...    if i not in l2:
...      print('doh')

答案 3 :(得分:0)

您可以在public static Task<IBulkResponse> IndexManyAsync<T>(this IElasticClient client, IEnumerable<T> objects, string index = null, string type = null) where T : class { // <snip> }

中查看单个项目
list_one

答案 4 :(得分:0)

我只是创建集合的差异,检查是长度。

assert len(set([1,2,3]) - set([1,2,3,4])) == 0

请注意,在布尔上下文中,空集(与任何其他容器一样)都是假的,所以你可以简单地这样:

if set(seq1) - set(seq2):
    do_something()