python 数据结构
python 一共有三大数据结构
tuple(元组)
list(数组)
dict(字典)
list
数组是一个有序的集合,用方括号表示,不限定其中的数据类型,整数、字符串、混合型都可以
num=[1,2,3,4,5]
数组可以直接用特定的函数
sum(num) = 15
len(num)=5
数组的索引
是元素所在的序列位置。
num[0]=1
num[-1]=5
还可以对其中元素进行切片,用:,切片为左闭右开区间
num[0:3]=[1,2,3]
数组的增删
数组通过insert函数插入,函数的第一个参数表示插入的索引位置,第二个表示插入的值。
num.insert(2,3)
num
[1,2,3,3,4,5]
另外一种方式是append,直接在数组末尾添加上元素。它在迭代和循环时应用较多。
num.append(6)
num
[1,2,3,3,4,5,6]
如果要删除特定位置的元素,用pop函数。如果函数没有选择数值,默认删除最后一个元素,如果有,则删除数值对应索引的元素。
num.pop(1)
num
[1,3,3,4,5,6]
num.pop()
num
[1,3,3,4,5]
更改元素不需要用到函数,直接选取元素重新赋值即可。
num[0]=[0]
num
[0,3,3,4,5]
tuple
tuple叫做元组,它和数组非常相似,不过用圆括号表示。但是它最大的特点是不能修改。
tuple=(1,2,3)
tuple.append(1)会报错
而选择和数组没有差异。
tuple[0]
1
元组可以作为简化版的数组,因为它不可更改的特性,很多时候可以作为常量使用,防止被篡改。这样会更安全。
dict
字典dict全称dictionary,以键值对key-value的形式存储。所谓键值,就是将key作为索引存储。用大括号表示。
字典和数组的差异在于,因为字典以key的形式存储和查找,所以它的查询速度非常快,毕竟翻字典的时候你只要知道拼音就能快速定位了。对dict数据结构,10条记录和10万条记录的查找没有区别。
这种查找方式的缺点是占用内存大。数组则相反,查找速度随着元素的增加逐渐下降,这个过程想象成程序在一页页的翻一本没有拼音的字典,直到找到内容。数组的优点是占用的内存空间小。
所以数组和字典的优缺点相反,dict是空间换时间,list是时间换空间,这是编程中一个比较重要的概念。实际中,数据分析师的工作不太涉及工程化,选用数组或者字典没有太严苛的限制。
[1] http://www.woshipm.com/data-analysis/749789.html