由此可见,采用字典和采用集合的性能是差不多的,甚至可能还要慢些。
在 Python 中其实有很多高效的库,例如用 numpy、pandas 来处理数据,其性能接近于 C 语言。那么,我们就用 numpy 和 pandas 来解决这个问题,这里我还比较了获取去重数据的性能,代码如下:
‘’’
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
import collections
import random as py_random
import timeit
import numpy.random as np_random
import pandas as pd
DATA_SIZE = 10000000
def py_cal_len():
data = [py_random.randint(0, 1000) for _ in xrange(DATA_SIZE)]
len(set(data))
def pd_cal_len():
data = np_random.randint(1000, size=DATA_SIZE)
data = pd.Series(data)
data_unique = data.value_counts()
data_unique.size
def py_count():
data = [py_random.randint(0, 1000) for _ in xrange(DATA_SIZE)]
collections.Counter(data)
<