python 中直接创建一个列表快还是一项一项添加快

python 中直接创建一个列表快还是一项一项添加快

比如:

#第一种
a=[]
for x in rang(1,100):
    a.append(x)

#第二种是直接手打
a=[1,2,3,4,5,6,....,100]

     想知道这两种创建列表的方法那种更快,因为现在要创建N个类似的列表,列表内

容为另一个列表内的数值运算,然后把这N个列表当成一个元素嵌套在另一个列表内

所以想请教下那种方法比较好比较有效率。后期涉及数据量几百万行以上,不想程序运行太慢
谢谢了 各位老大

1、第一种的时间复杂度是O(n),第二中的时间复杂度是O(1)。
2、当创建n个类似的列表时,相当于在代码前添加了一个循环。故第一种的时间复杂度是O(n^2),第二中的时间复杂度是O(n)。
3、n越大,时间复杂度间区别越大。当n等于一百万时,第一种可能运行上亿次,而第二种依旧只执行一百万次。
由此总结:第二种时间用时较少,且创建次数越多,相比较第一种用时就越少。

列表推导式

[ i for i in range(100)]    

如果数据量非常庞大,建议使用numpy模块中的array数组进行创建,numpy中的数组多数是用于人工智能中存储矩阵的,所以在性能方面是比python原生要好,并且原生具有的方法,他都有

后者快,在python里基本记住一个原则,就是代码少的(指的是执行少的,循环的话,你得算展开后的行数)往往快,因为python是解释执行,调用函数之类的,相当于用本地代码执行,而代码多的,相当于解释执行,所以前者快。