2017-07-28 118 views
2

下面是当前代码我有:如何检查一个列表是否是另一个列表的子集?

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'如果qletterz

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

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

回答

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 
1
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 
+2

第二个建议不完成相同的事情。 (它检查两个列表是否包含完全相同的成员,而不是检查子集。) – smarx

+0

@smarx它实际上并不正确,因为'sort()'不返回任何内容。 –

+0

优秀点。 :-)'sorted(lst1)== sorted(lst2)'会稍微好一些,但在我的第一条评论中仍然存在这个问题。 – smarx

相关问题