我有一个需要过滤的简单单词列表,但列表中的每个单词都附加了一个附带的“分数”,这给我带来了一些麻烦。输入列表具有以下结构:
lst = ['FAST;5','BREAK;60','FASTBREAK;40', 'OUTBREAK;110','BREAKFASTBUFFET;35', 'BUFFET;75','FASTBREAKPOINTS;60' ]
我试图弄清楚如何识别列表中仅由同一列表中的其他单词组成的单词。例如,应用于lst
上面的代码将产生:
ans = ['FASTBREAK:40','BREAKFASTBUFFET;35']
我发现一个先前的问题涉及几乎相同的情况,但在这种情况下,列表中的单词没有跟踪分数,并且我在处理列表中的这些跟踪分数时遇到了麻烦。该ans
列表必须保留找到的复合词的分数。中的单词顺序lst
是随机且无关的。理想情况下,我希望 ans 列表按单词的长度(在 之前' ; '
)排序,如上所示。这将为我节省一些额外的 ans 后处理。
我已经找到了一种使用 ReGex 和嵌套 for 循环的方法(我会让你免去我 1980 年代风格的暴力代码的丑陋,它真的不漂亮),但我的单词列表有接近一百万个条目,我的解决方案需要很长时间才能完全无法使用。我正在寻找一个我可以实际使用的更具 Python 风格的解决方案。我很难解决这个问题。
泛舟湖上清波郎朗
凤凰求蛊
万千封印
相关分类