2022年 11月 7日

python中对数组合并的方法

python的数组合并在算法题中用到特别多,这里简单总结一下:

假设有a1和a2两个数组:

a1=[1,2,3]

a2=[4,5,6]
  • 1
  • 2
  • 3

合并方式

1.直接相加

#合并后赋值给新数组a3
a3 = a1 + a2
  • 1
  • 2

2.extend

#调用此方法,a1会扩展成a1和a2的内容
a1.extend(a2) 
  • 1
  • 2

3.列表表达式

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#先生成新的二维数组
a3 = [a1, a2]
#列表推导形成新的数组
a4 = [ y for a in a3 for y in a ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

合并性能

下面分别测试下三种数组合并方式的性能

import time

a1=range(100000000)

a2=range(100000000)

start=time.time()

new_a = a1 + a2

end=time.time()

cost = end - start

print cost
 

a1=range(100000000)

a2=range(100000000)

start=time.time()

a1.extend(a2)

new_a = a1

end=time.time()

cost = end - start

print cost

 

a1=range(100000000)

a2=range(100000000)

a3=[a1,a2]

start=time.time()

new_a = [ y for a in a3 for y in a ]

end=time.time()

cost = end - start

print cost
  • 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

分别输出:

17.2916171551

20.8185400963

55.1758739948
  • 1
  • 2
  • 3
  • 4
  • 5

可以看出:在数据量大的时候,第一种方式的性能要高出很多。

结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!

Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1LL4y1h7ny?share_source=copy_web

Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
https://www.bilibili.com/video/BV1QZ4y1N7YA?share_source=copy_web