我在Python中有列表。简单表示如下所示,标题为输入。我如何识别2个术语位置(例如'las''vegas')并将它们组合起来以获得单个术语的位置(例如'lasvega')。输入列表顺序下方显示的所需输出始终是随机的。任何关于我如何实现的指示将不胜感激。
输入:
['vegas' , 'hotel' , 'las']
['new' , 'york' , 'flights']
['san' , 'accomodations' , 'franscisco']
['san' , 'diego' , 'motel']
期望的输出:
['lasvegas' , 'hotel' ]
['newyork' , 'flights']
['sanfranscisco' , 'accomodations' ]
['sandiego' , 'motel']
答案 0 :(得分:1)
您想要的是全文搜索。如果您拥有的数据集非常大或存在性能问题,那么您应该考虑一个量身定制的解决方案,如Elastic Search
或Solr
或som合适的数据库。
如果您只想要一个简单的Python解决方案,那么您首先需要维护一个世界上所有城市的字典。之后,您可以在列表中找到所有字符串组合,即列表的powerset,并在powerset上循环,以查找前面提到的城市字典中存在哪些组合。