python的数组合并在算法题中用到特别多,这里简单总结一下:
假设有a1和a2两个数组:
a1=[1,2,3]
a2=[4,5,6]
1. 直接相加
合并后赋值给新数组a3
a3 = a1 + a2
2. extend
调用此方法,a1会扩展成a1和a2的内容 a1.extend(a2)
3. 列表表达式
先生成新的二维数组) a3 = [a1, a2])
列表推导形成新的数组) a4 = [ y for a in a3 for y in a ])
下面分别测试下三种数组合并方式的性能
分别输出:
17.2916171551
20.8185400963
55.1758739948
可以看出:在数据量大的时候,第一种方式的性能要高出很多。
python中list(列表)和array(数组)的区别是:
列表 是由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间没有任何关系;
数组 也就是一个 同一类型的数据 的有限集合;
列表list与数组array的相同点:
a. 都可以根据索引来取其中的元素
列表list与数组array的不同点:
a.列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;
b.列表list不可以进行数学四则运算,数组array可以进行数学四则运算;
c.相对于array,列表会使用更多的存储空间。
先定义一个数组列表:列表合并也可以用+,但是用+的话,会产生一个新的列表(当然也可以赋值给任何的变量),而extend则只是修改了原来的对象
只读数组,只能查看不能编辑,列表的切片操作同样适于元组。
表达方式:tuple=("元素1","元素2","元素3"),中间同样用,隔开
特殊的元组:tupleZero=()空元组
tupleOne=("元素1",) 只有一个元素,后面要跟一个,(注意好的习惯的养成)
作用:1.对于一些不想被修改的元素,可以放在元组里面
2.元组可以在映射(和集合的成员)中当作键使用,而列表不行
3.元组作为内建函数和方法的返回值
enumerate(列表对象,返回标签起始值(默认为零))
上面的例子可以看出,返回的i是一个元组,如果不想要元组的话,可以用两个参数接收: