2017-07-28 111 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

相關問題