Python Py3生成字典列表的速度较慢

Python Py3生成字典列表的速度较慢,python,pypy,Python,Pypy,有没有办法用Py3加速列表理解(词典列表)?通常Py3在正常计算/逻辑方面比cpython快得多。它生成普通列表(create_data1)的速度稍快,但生成字典列表(create_data2)的速度似乎是普通python3的3倍 import pandas as pd import datetime NUMS = 1000000 def create_data1(): start = datetime.datetime.now() data = [x for x in ra

有没有办法用Py3加速列表理解(词典列表)?通常Py3在正常计算/逻辑方面比cpython快得多。它生成普通列表(create_data1)的速度稍快,但生成字典列表(create_data2)的速度似乎是普通python3的3倍

import pandas as pd
import datetime

NUMS = 1000000

def create_data1():
    start = datetime.datetime.now()
    data = [x for x in range(NUMS)]
    print("create_data1: {}".format(datetime.datetime.now() - start))
    return data


def create_data2():
    start = datetime.datetime.now()
    data = [{'a': x, 'b': x, 'c': x} for x in range(NUMS)]
    print("create_data2: {}".format(datetime.datetime.now() - start))
    return data

_ = create_data1()
_ = create_data2()
python3.8.2的结果:

create_data1: 0:00:00.037305
create_data2: 0:00:00.228406
PY3 7.3.2(python 3.6.9)的结果:


首先,你应该认真考虑一下时机。
timeit
模块有一些函数用于此。您可能需要单独设置time
datetime.datetime.now()
create_data1: 0:00:00.030844
create_data2: 0:00:00.620640