2017-04-20 62 views
-1

我有一個列表:的Python 3.5:在列表中搜索不同的值

myList = [abc123, def456, ghi789, xyz999] 

我需要尋找在myList中具體數值,根據允許值的這種「分榜單」上:

allowed = [abc123, xyz999] 

編輯:我需要檢查,如果myList中包含允許

我已經知道如何SEACH在一個列表中的特定字符串的值,但我真的不明白^ h也可以對「子列表」做同樣的事情。

非常感謝您的幫助。

+0

[列表中找到優雅子列表]的可能的複製(http://stackoverflow.com/questions/10106901/elegant-find-sub-list-in-list) –

+0

你是什麼意思「搜索」?你想檢查'myList'是否包含'allowed'中的值?或者你想在'myList'中找到他們的索引?請將預期的輸出添加到問題中。 –

+0

是的,我想檢查myList是否包含允許的值。 –

回答

2

我不確定你想要達到的目標,但我認爲你的意思是看看允許的值是否在你的列表中。所以,試試這個:

myList = ['abc123', 'def456', 'ghi789', 'xyz999'] 
allowed = ['abc123', 'xyz999'] 

for i in myList: 
    if i in allowed: 
     print("{0} in the list".format(i)) 

閱讀您的意見後,這個問題有點模糊, 我做了使用字典存儲的允許值,並請檢查是否全部的解決方案是myList中

myList = ['abc123', 'def456', 'ghi789', 'xyz999'] 
allowed = {'abc123' : False, 'xyz999' : False} 

for i in myList: 
    if i in allowed: 
     allowed[i]=True 

print((all(value == True for value in allowed.values()))) 
+0

完美的解決方案,爲我工作!對不起,我的解釋不太清楚! –

1
for value in myList: 
    if value in allowed: 
     #dosomething 
2

您可以使用set.issubset

>>> set(allowed).issubset(myList) 
True 

或者,如果你的價值觀不是可哈希,all與理解:

>>> all(value in myList for value in allowed) 
True