首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式查找LZW python

模式查找LZW python
EN

Stack Overflow用户
提问于 2014-03-12 21:12:47
回答 2查看 154关注 0票数 0

LZW算法用于寻找输入符号之间的模式。但它能在语言中寻找模式吗?我的意思是,alfabet索引不是符号,而是文字,例如输入:

代码语言:javascript
复制
'abcd', 'abcd', 'fasf' , 'asda', 'abcd' , 'fasf' ...

输出类似于:

代码语言:javascript
复制
'abcd', '1', 'fasf' , 'asda' , '1', '2' ...

或者有什么压缩算法能起作用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 21:23:18

代码语言:javascript
复制
keys = []
def lzw(text):
      tokens = text.split()
      new_keys = dict.fromkeys(tokens).keys()
      keys.extend([key for key in new_keys if  key not in keys])
      encoded = ["%s"%keys.index(tok) for tok in tokens]
      for i,key in enumerate(keys):
           try:
              encoded[encoded.index(str(i))] = key
           except:
               pass
      return " ".join(encoded)

print lzw("abcd abcd fasf asda abcd fasf")
#outputs: abcd 0 fasf asda 0 2

是一个很容易实现的

票数 1
EN

Stack Overflow用户

发布于 2014-03-12 21:25:10

您可以使用此代码搜索字符串以找到模式。你需要知道你想要搜索的是什么模式。

代码语言:javascript
复制
## Search for pattern 'iii' in string 'piiig'.
## All of the pattern must match, but it may appear anywhere.
## On success, match.group() is matched text.
match = re.search(r'iii', 'piiig') =>  found, match.group() == "iii"
match = re.search(r'igs', 'piiig') =>  not found, match == None

阅读本网站:https://developers.google.com/edu/python/regular-expressions?hl=iw

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22363942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档