我們有兩個列表,發現如果列表的列表中有從另一個列表中的項目
l=["a","b","c"]
s=[["a","b","c"],
["a","d","c"],
["a-B1","b","c"],
["a","e","c"],
["a_2","c"],
["a","d-2"],
["a-3","b","c-1-1","d"]]
print l
print s
現在,我嘗試看看如果s
各2級列表中有模糊匹配任何在列表中的項目l
。
matches=list()
matchlist2=list()
print s2
for i in range(len(s)):
matches.append([])
for j in range(len(s[i])):
for x in l:
if s[i][j].find(x)>=0:
print s[i][j]
matches[i].append(True)
break
else:
matches[i].append(False)
matchlist2.append(all(x for x in matches[i]))
print matches
print matchlist2
這給了我想要的東西。但我對它有如此多的循環感到不滿意。我也在和大熊貓一起工作,如果有大熊貓的解決方案,那將是很棒的。在熊貓中,只有兩列兩個數據框。
[[True, True, True], [True, False, True], [True, True, True], [True, False, True], [True, True], [True, False], [True, True, True, False]]
第二個代碼檢查子列表中的所有項目是否匹配。
[True, False, True, False, True, False, False]
我相信你正在尋找http://www.codereview.stackexchange.com。我們在這裏的代碼是*不*工作。 – zondo
在你的情況下,什麼被定義爲模糊匹配? – timgeb
在@zondo說的之上,看看遞歸。它將減少循環層次併爲您提供多層次數組的更多功能。 – CalebB