Skip to main content
 首页 » 编程设计

python之使用 map() 获取列表元素在 Python 中的字符串中存在的次数

2025年05月04日19itcoder

我正在尝试获取列表中每个项目在 Python 中的字符串中的次数:

paragraph = "I eat bananas and a banana" 
 
def tester(x): return len(re.findall(x,paragraph)) 
 
map(tester, ['banana', 'loganberry', 'passion fruit']) 

返回 [2, 0, 0]

但是我想做的是扩展它,这样我就可以将段落值输入到 map() 函数中。现在,tester() 函数已经对段落进行了硬编码。有没有人有办法做到这一点(也许制作一个长度为 n 的段落值列表)?还有其他想法吗?

请记住,每个数组值在未来的某个时间点都会有一个权重 - 因此需要将这些值保存在一个列表中,而不是将它们一起处理。

更新:段落通常为 20K,列表通常有 200 多个成员。我的想法是 map 并行运行 - 因此它比任何串行方法都更有效率。

请您参考如下方法:

闭包是一个快速的解决方案:

paragraph = "I eat bananas and a banana" 
 
def tester(s):  
    def f(x): 
        return len(re.findall(x,s)) 
    return f 
 
print map(tester(paragraph), ['banana', 'loganberry', 'passion fruit'])