美文网首页
2018-10-10 011 列表List

2018-10-10 011 列表List

作者: 杜若飞er | 来源:发表于2018-10-10 23:43 被阅读1次

列表上Python内置可变序列,(应该)也是Python中诸卧槽类型中最常用的一个,其重要性应该等同于C++中的数列(Array),其基本形式是用[]框起来的若干元素,相互之间用,间隔。
但是与数组不同的是,Python中的列表其长度(既包括逻辑的又包括物理的)是动态的,当增减元素时会自动进行内存的拓展或者收缩,从而保证元素之间没有缝隙(我其实不太理解这个“缝隙”具体指什么,难道是物理层空置的内存空间?),从这一点来说,列表又有C++之中堆栈的特点。
但需要注意的是,列表虽然可以从中间处理,但这样的操作会涉及大量元素的移动,效率会有所降低,甚至会导致意想不到的错误结果(这大概是因为Python中不太使用指针?),所以尽量在列表的尾部进行操作。
列表还具有以下的性质:
每个列表都有唯一标志它的名字,也就是所谓的列表名(本菜鸡一般命名都用Listof……)直接命名……同时,列表中的每一个元素又有其唯一的索引号,索引从0开始;列表中允许不同数据类型的元素共聚一堂,也支持各种卧槽类型加入其中。

List的创建与删除

列表的创建与删除都非常简单,如下:

List = []    #创建一个空列表并命名为List;
List2 = [1,2,'String",List]    #创建一个名为List2的列表;
List = List2    #直接用List2创建一个新列表;

Python中还有一个List()函数,直接把和List相似的数据类型转化成List,可转化的包括String、Range、Tuple等等。
当列表不在需要的时候,可以用del函数进行删除,操作如下:
del List
需要注意的就是这里的操作方法和清空(List.clear())显然是不同的,结果也是不同的,clear是保留这个列表情况下将其变成一个空列表,而del直接把所有东西都安排了。

List的一些简单方法

正如昨儿写的「序列」这个总的概念,很多列表类型的方法都是通用的,这里暂且拉一个单子好了:

方法 说明 备注
List.append(sep) 将元素sep添加到List尾部
List.extend(list2) 将列表list2添加到List尾部
List.insert(i,sep) 在索引号为I处添加元素sep
List.remove(x) 删除List中首次出现的元素x 如果没有sep,会导致error
List.pop([I]) 删除并返回List指定位置的元素 默认删除最后一个元素
List.index(sep) 返回第一个值为sep的元素的索引 如果没有sep,会导致error
List.count(sep) 统计sep在List中出现的次数
List.reverse() List进行一次反转
List.sort() List进行一次原地排序 原地是指原List内排序

这里可能要区分一下append()和extend()的不同,在后缀一个List(不妨称之为List2)时,append是把这个后缀List2整体当作一个元素,而expend则是把List2中的每一个元素依次后缀,所以,经过一次append后,List的长度会增加1,而经过一个expend后,List的长度则会增加len(List2),而且很显然,expend只能处理另一个List而append则灵活得多。


多说几句

今天用Python试着做了做leetCode,感觉还是比C要麻烦?总是时间超限也是醉了……

相关文章

网友评论

      本文标题:2018-10-10 011 列表List

      本文链接:https://www.haomeiwen.com/subject/zaxvaftx.html