如何检查一个列表是否是另一个列表的子集?

时间:2017-07-28 00:53:05

标签: python

这是我目前的代码:

a = input('Enter words: ') 
b, c = a.split()
q = []
z = [] 

for i in b: 
    q.append(i)
for j in c: 
    z.append(j)

for letters in q: 
    if letters in z: 
        print('yes')

如果'yes'中的letter也在q,则会输出z

有没有办法检查一个列表中的所有字符实例是否都在另一个列表中。像:

for letters in q: 
    if all letters in z: #all
        print('yes')

2 个答案:

答案 0 :(得分:3)

lst1 = [1, 2, 3]
lst2 = [3, 4, 5]

set(lst1).issubset(lst2)
# False
lst1 = [1, 2, 3]
lst2 = [1, 2, 3]
set(lst1).issubset(lst2)
# True

答案 1 :(得分:1)

我相信这就是你想要的:

if all(letter in z for letter in q):
    print('yes')

简化的完整工作代码:

q, z = input('Enter words: ').split()

if all(letter in z for letter in q):
    print('yes')

样品运行:

$ python test.py
Enter words: cat tack
yes
$ python test.py
Enter words: cat bat