【发布时间】:2020-03-12 13:48:42
【问题描述】:
我有一个字符串列表:
mylist=["3>3>4>5","2>2>4","3>3>5>6>2","2>2>4>5", "4>5>5"]
我希望能够在此列表中找到子模式。
例如 this 通过模式查找器后的最终结果应该返回
{"3>3>":["3>3>4>5",3>3>5>6>2], "2>2>4":["2>2>4","2>2>4>5"]}
目前,我可以按字符串中的第一个字母对列表进行分组。 通过 find_sub_pattern 解析列表 mylist 得到 p>
[["3>3>4>5",3>3>5>6>2],["2>2>4","2>2>4>5]]
def find_sub_pattern(data=[]):
all_match=[]
first_letter=[]
for row in data:
first_letter.append(row[0])
list_freq=get_list_freq(first_letter)
matched_first=[]
for key, value in list_freq.items():
if value > 1:
matched_first.append(key)
if matched_first==[]:
return "No pattern match"
matched_array=[]
for p in range(0,len(matched_first)):
matched_array.append([x for x in data if x[0] in matched_first[p]])
print(matched_array)
【问题讨论】:
-
应该自动找到子模式还是提前定义?
-
我不清楚你所说的模式是什么意思
-
子模式必须自动找到,没有定义模式@fafl
-
@doctorlove 模式是指列表中两个或多个字符串共有的子字符串
-
如果你有
"3>3>4>5", "3>3>4>6", "5>3>4", "3>3>6"呢?你会期待什么样的子模式?
标签: python string sorting pattern-matching