【发布时间】:2012-01-22 21:38:47
【问题描述】:
使用 Python 3,我有一个包含超过 100,000 个字符串 (list1) 的列表,每个字符串最多 300 个字符。我还有一个超过 900 万个子字符串的列表(list2)——我想计算 list2 中的一个子字符串出现在多少个元素中。例如,
list1 = ['cat', 'caa', 'doa', 'oat']
list2 = ['at', 'ca', 'do']
我希望函数返回(映射到 list2):
[2, 2, 1]
通常,这非常简单,需要的很少。但是,由于列表的大小,我遇到了效率问题。我想找到返回该计数器列表的最快方法。
我已经尝试过各种列表推导、生成器、地图、循环,但我还没有找到一种快速的方法来完成这项简单的任务。理论上完成这个目标最快的方法是什么,最好是快速采取O(len(list2)) 步骤?
【问题讨论】:
标签: python string performance list