Python如何初始化列表?


本文摘自php中文网,作者青灯夜游,侵删。

Python是一种非常灵活的语言,可以通过多种方式执行单个任务,例如,可以通过多种方式执行初始化列表。下面本篇文章就来带大家了解几种Python初始化的方法,并比较一下这几种方法的效率,希望对大家有所帮助。

下面我们就来介绍在Python中初始化列表(我们创建大小为1000并使用零初始化的列表)的一些方法。

方法一:使用for循环和append()

我们可以创建一个空的列表,并使用append()方法通过for循环n次来将元素添加到列表中。

1

2

3

arr = []

for i in range(1000):

    arr.append(0)

方法二:使用带计数器变量的while循环和append()

这和方法一有点类似,但是我们使用while循环代替for循环。

1

2

3

4

arr = []

i = 0

while(i<1000):

    arr.append(0)

方法三:使用列表推导(List Comprehension)

列表推导(List Comprehension) 是一种数学家用来实现众所周知标记集合的Python方式。它由方括号组成,包含一个表达式,后跟一个for子句,后面跟一个可选的if子句。

表达式可以是我们想要放入列表中的任何类型的对象;由于我们用零初始化列表,因此我们的表达式将只为0。

1

arr = [0 for i in range(1000)]

说明:用列表推导可以编写高效率的代码,它的执行速度比for循环快35%。

方法四:使用*运算符

运算符可以用作[object] * n,其中n是数组中元素的数目。

1

arr = [0]*1000

代码执行时间比较

下面我们来看看这四种方法的执行时间,看看那种方法更快。

示例:我们将计算每种方法在500次上初始化10000个元素的数组所花费的平均时间。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

# 导入时间模块以计算时间

import time

   

# 初始化列表以保存时间

forLoopTime = []

whileLoopTime = []

listComprehensionTime = []

starOperatorTime = []

   

# 重复此过程500次,并计算所用的平均时间。

for k in range(500): 

   

    # 开始时间

    start = time.time()

    # 声明空列表

    a = []

    # 执行for循环10000次

    for i in range(10000):

        a.append(0)

    # 停止时间

    stop = time.time()

    forLoopTime.append(stop-start)

   

    # 开始时间

    start = time.time()

    # 声明空列表

    a = []

    i = 0

    # 执行while循环10000次

    while(i<10000):

        a.append(0)

        i+= 1

    stop = time.time()

    whileLoopTime.append(stop-start)

   

    start = time.time()

    # 使用列表推导(List Comprehension) 来初始化列表

    a = [0 for i in range(10000)] 

    stop = time.time()

    listComprehensionTime.append(stop-start)

   

   

    start = time.time()

    # 使用*运算符

    a = [0]*10000

    stop = time.time()

    starOperatorTime.append(stop-start)

   

   

   

print("for循环所用的平均时间:" + str(sum(forLoopTime)/100))

print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100))

print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100))

print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))

输出:

2.jpg

注意:时间将根据执行此代码的平台而有所不同。这些时间仅用于研究这些初始化方法的相对性能。

● 可以看出,for和while循环所用时间几乎相同。

● 列表推导的性能比for和while循环要好得多,前者的速度要快3-5倍。当我们尝试创建1-1000的数字列表时,可以看到另一个这种差异的例子。使用列表推导比使用append()要好得多。

1

a = [i for i in range(1,1001)]

● 使用*运算符比其余方法更快,这是您应该初始化列表的方式

相关视频教程推荐:《Python教程》

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

以上就是Python如何初始化列表?的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中关于string相关操作的实例分析

Python 通过logging写入日志到文件和控制台的实例

Python字典之中len方法是什么?len方法有什么作用?

Python如何创建txt文件并写入

django数据库连接丢失的问题解决(示例讲解)

Python语言语句块的标记是什么?

Python怎么输入一个三位数,输出百位、十位和个位

Python中的线程是什么?概念及优点概括

Python编写简单网络爬虫抓取视频

Python代码如何找出所有水仙花数

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...