我需要从嵌套的字符串列表中筛选字符串。我已经阅读了现有的答案,并尝试使用defaultdict
来做:
import sys
from collections import defaultdict
def isRelevant(string_set):
if string_set.find("a1") != -1 or string_set.find("a2") != -1 or string_set.find("b3") != -1:
return True
else:
return False
def data_filter(string_matrix):
new_list = []
for string_set in string_matrix:
temp = filter(isRelevant, string_set)
new_list.append(temp)
return new_list
def main():
string_matrix = [ ['a1','a2','a3','b1','b2','b3'],['a1','a2','a3','b1','b2','b3','c1','c2','c3'] ]
filtered_strings = data_filter(string_matrix)
for each in filtered_strings:
print each,
if __name__ == '__main__':
main()
上面是一个包含字符串的嵌套列表的工作示例。你知道吗
此示例运行良好,并返回预期的输出['a1', 'a2', 'b3'] ['a1', 'a2', 'b3']
我现在试图创建的是一个输出
[ ['a1','a2','a3'],['c1','c2','c3'] ]
其目的基本上是说“如果你找到‘a1’,只过滤‘aX’,如果你找到‘c1’,只过滤‘cX’。 意思是根据特定的字符串过滤特定的字符串。你知道吗
我尝试将isRelevant
方法更改为:
def isRelevant(string_set):
if string_set.find("a1") != -1:
if string_set.find("a1") != -1 or string_set.find("a2") != -1 or string_set.find("a3") != -1:
return True
elif string_set.find("c1") != -1 or string_set.find("c2") != -1 or string_set.find("c3") != -1:
return True
else:
return False
如果找到“a1”,则上面的代码用于过滤“aX”,否则用于过滤“cX”。你知道吗
我得到的结果是:
['a1'] ['a1', 'c1', 'c2', 'c3']
在第二步中,我的代码可能有什么问题,有没有更好的方法来执行“根据特定字符串筛选特定字符串”?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐