我有兩個列表,我想刪除匹配的單詞並保持不同。 這裏是代碼:在兩個列表中發現不同的單詞
def check_synonym(text):
tokens=regexp_tokenize(text, r'[،؟!.؛\s+]\s*', gaps=True)
based_text= ' '.join(cursor.execute('SELECT request FROM Male_Conversation_Engine WHERE request REGEXP?',[tokens[0]]).fetchone())
based_tokens=regexp_tokenize(str(based_text), r'[،؟!.؛\s+]\s*', gaps=True)
for w1 in based_tokens:
for w2 in tokens:
if w1 == w2:
based_tokens.remove(w1),tokens.remove(w2)
return list
如果兩個名單是 「在阿拉伯語中」:
tokens = ['هذا','الجهاز','الجميل']
based_tokens = ['هذا','الجهاز','جيد']
輸出應該是:
tokens = ['الجميل']
based_tokens = ['جيد']
實際輸出:
tokens = ['الجهاز','جميل']
based_tokens = ['الجهاز','جيد']
旁邊只有德引用第一個元素'هذا'並返回列表的其餘部分。
(使用python3)
的可能的複製[Python中,計算列表差異(http://stackoverflow.com/questions/6486450/python-compute-list-difference) – xbonez