python 如何判断list1 是否包含list2 的全部元素

list1 = [1,2,3,4,5]
list2 = [1,1,2,3]

-- coding: utf-8 --

a = [1, 2, 3]
b = [1, 2]

d = [False for c in b if c not in a]
if d:
print('b not in a')
else:
print('b in a')
这种方式不是我需要的.如果b=[1,1,2],结果也是b in a

if list(set(a) & set(b)) ==b:
判断一下就可以。

print(a.issuperset(b))
超集了解一下。
a是b超集输出true,不是超集输出false。

那你对列表去重后再判断就行了。
b=list(set(b))
img
如有帮助,望点击我回答右上角【采纳】按钮支持一下。

#使用集合的交集判断:

list1 = [1,2,3,4,5]
list2 = [1,1,2,3]
if set(list1)&set(list2)==set(list2):
    print('True')
else:
    print('False')

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

def isin(a,b):
    li = a.copy()
    for v in b:
        if v in li:
            li.remove(v)
        else:
            return False
    return True

print(isin([1,2,3],[1,2]))   #输出 True
print(isin([1,2,3],[1,1,2])) #输出 False
print(isin([1,2,3,1],[1,1,2]))   #输出 True


#
for i in b:
    if i in a:
        a.remove(i)
    else:
        print(False)
        break
else:
    print(True)

直接循环取b的元素,判断元素在不在a中。如果不在,输出个不在,break打断循环就是了。

list1 = [31, 25, 32, 27, 33, 28, 32, 26, 33, 33, 27, 28]
list2 = [[]32,33,33],[33,33,33],[33,33,33]]
怎么样根据列表2里的元素索引出列表1的位置并且去重呢