【发布时间】:2020-04-08 17:24:33
【问题描述】:
从开始位置到停止位置计算元素出现次数的最快方法是什么。
list = [a,b,c,c,d,c....] can be very long
count(list,c, from = 2, till = 4) = 2.
我们可以做到
counter = 0
for i in range(startpos, endpos):
if symbol == list[i]:
counter+= 1
或者我们可以这样做
list[startpos:endpos].count(symbol)
但是这看起来仍然比第一个选项慢,并且会复制列表的很大一部分
由于字符串具有这样的计数函数,我们可以将列表连接到字符串,然后使用内置计数函数,但是由于列表很大,因此转换为字符串似乎不是更快的方法。
有没有更快更pythonic的方法来实现这一点?
【问题讨论】:
标签: python python-3.x list performance