[url=]list[/url](列表) list是一种[url=]线性[/url]的结构,类似于C中的数组,但方法比数组更多。通过对list的一些方法的调用可以实现栈,队列等常见的线性数据结构,可见list是非常灵活的。以下是我总结的list的基础知识点以及一些值得注意的地方: 1.list可以被修改,包括添加,删除,段添加,段删除等,方法很多,运用很灵活。至于具体的函数到处都可以查到,我就不赘述了。 2.list中的元素,类型可以不一样。比如 list1=['neilhappy',123]。这一点就与c中的数组,c++中的容器有区别了,这两者在声明过后,容器中的数据类型都是相同的。 3.list可以通过下标来访问。比如:list1=['a','b','c'],那么list1[0]='a'。还可以访问一段元素,比如list1[0:2],是一个半开半闭的区间,左闭右开,所以结果是['a','b']。还可以加一个参数表示递增的数目:list1[0:2:2],跟matlab很类似。还有一点令我很惊喜,list还可以用负数下标来访问。list1[-1]代表最后一个元素,即'c'。这下strlen,sizeof等函数都可以略微休息下了。 4.string与list的区别。当然,string可以作为list的元素,更重要的是,string可以直接相连:"neil""happy"。但是list必须要有个+号:['neil']+['happy'],结果是['neil','happy']。这一点需要注意一下。 5.list的乘法。这又是我很喜欢的一个特性。以往声明c的数组时:int a[100]={1,2,3,4,5,5,5,5,5,5},好几个5,数的眼花,这下好了,在python中:a=[1,2,3,4]+[5]*6。哇,世界清静了
tuple(元组) tuple与list非常类似,但tuple就像一个被严重限制的list,不准动(被更改),不准变强大(有很多methods),声明方法是tuple1=(1,2,3)或者tuple1=1,2。访问方法与list类似,不再赘述。
dictionary(字典) dictionary,实际上就是一组mapping,一种散列的思想。需要注意的知识点: 1.形式。dict1={'name':'neil'}。这里的'name'就是key,'neil'就是value。dictionary就是一些key-value键值对的集合。 2.浅copy与deepcopy。与c++基本类似,浅copy就相当于copy指针,而deepcopy就是在copy指针的同时还要分配相应的内存空间。 3.访问方法:dict1['name']的结果就是'neil'。注意,在dictionary中没有order的概念,所以就不能像list一样用数字下标去访问,得用key去访问。
|