快捷搜索:  汽车  科技

python中列表的基本操作:Python3自学第5天列表list

python中列表的基本操作:Python3自学第5天列表list列表的索引和切片与前面讲的字符串索引是相同的, [头下标:尾下标) list切片遵循“左闭右开”原则,也叫“包左不包右”。实例代码:list 索引和切片:今天我们了解下数据类型中的列表list,是Python中最常用的序列之一。使用方括号[ ]来创建列表,元素item间用逗号( )隔开;实例代码:从上面的实例我们可以看出,list中的元素item可以是不同类型的对象;还可以看出上面的list在定义时字符串元素item使用了单/双引号,输出结果时Python解释器默认用单引号表示字符串元素,我们自己在定义字符串元素时可以借鉴一下。

python中列表的基本操作:Python3自学第5天列表list(1)

在开始之前我们先了解一下序列(sequence):

序列中的元素都是有序的,其实在前面“极客干货”已经分享过一种序列了,那就是字符串《Python3 自学第4天:字符串》

Python总共有6个内置的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。

序列的操作包括:索引、长度、切片、遍历、组合(序列相加)、检查成员、重复(乘法)、最小值和最大值。

今天我们了解下数据类型中的列表list,是Python中最常用的序列之一。

使用方括号[ ]来创建列表,元素item间用逗号( )隔开;实例代码:

python中列表的基本操作:Python3自学第5天列表list(2)

从上面的实例我们可以看出,list中的元素item可以是不同类型的对象;还可以看出上面的list在定义时字符串元素item使用了单/双引号,输出结果时Python解释器默认用单引号表示字符串元素,我们自己在定义字符串元素时可以借鉴一下。

list 索引和切片:

列表的索引和切片与前面讲的字符串索引是相同的, [头下标:尾下标) list切片遵循“左闭右开”原则,也叫“包左不包右”。实例代码:

python中列表的基本操作:Python3自学第5天列表list(3)

合理的使用负索引进行访问和切片,可以提高检索list的效率。对正负索引和切片的概念不清楚的地方,可以了解下《Python中字符串截取(切片)的两种方式》。

列表拼接,拼接后会产生一个新列表。实例代码:

python中列表的基本操作:Python3自学第5天列表list(4)

注意: = 操作符是把b列表中每个元素拼接到了a列表元素的后面。

使用list.append()追加元素,和 =操作符是有区别的,实例代码:

python中列表的基本操作:Python3自学第5天列表list(5)

可以看出,append(obj) 参数整体作为一个元素被追回到b列表最后一位,这就是下面要讲的嵌套。

list 嵌套

在前面刚才提到了list中的元素可以是不同的数据类型对象;实例代码:

python中列表的基本操作:Python3自学第5天列表list(6)

说明:

list_a[-1]:取出a列表最后一位元素,它是list类型;

list_a[-1][-1]:取出a列表最后一个元素中的最后一个元素。

Python内置函数

python中列表的基本操作:Python3自学第5天列表list(7)

用 in 判断是否存在于列表中

python中列表的基本操作:Python3自学第5天列表list(8)

列表推导式:这个很重要也比较常用,格式如下:

[表达式 for 变量 in 可迭代对象] 或 [表达式 for 变量 in 可迭代对象 if 条件]

python中列表的基本操作:Python3自学第5天列表list(9)

list 常用的几个方法

python中列表的基本操作:Python3自学第5天列表list(10)

python中列表的基本操作:Python3自学第5天列表list(11)

python中列表的基本操作:Python3自学第5天列表list(12)

注意了,上面list.sort()只针对元素类型相同的列表进行排序,不同类型元素的列表进行排序是会报错的;实例代码:

python中列表的基本操作:Python3自学第5天列表list(13)

总结一下sort与sorted区别:

sort是list自身的方法;sorted是Python内置函数,可以对所有可迭代的对象进行排序操作。

list的sort方法改变的是原列表中元素的顺序,而内置函数sorted返回的是一个新的list,原列表保持不变。

python中列表的基本操作:Python3自学第5天列表list(14)

总结一下上面的列表复制:

id() 获取对象的内存地址,这样 = 和 copy()两者的区别就明显了;

使用=是引用赋值,两个对象指向同一块内存地址,变更其中一个另外一个也会跟着变;

copy()是复制一个副本,原对象和新复制的对象互不影响。

python中列表的基本操作:Python3自学第5天列表list(15)

del语句删除一个或者多个对象的引用(引用可以理解为给对象贴的标签),而不是删除内存中的对象(value);

当某个对象的所有引用都被删除后(对象的所有标签被撕完后),会自动执行魔法方法__del__将这个对象作为垃圾回收掉。实例代码:

python中列表的基本操作:Python3自学第5天列表list(16)

OK!Python数据类型里的列表list就分享到这里,如果您有什么问题,请在评论区留言,我会及时回复,感谢!

上一篇:Python3 自学第4天:字符串

下一篇:Python3 自学第6天:元组tuple

【极客干货】从事IT行业十余年,在移动互联网开发,J2EE企业级开发,IOT物联网,AI人工智能等方面有点技术积累,熟练使用C/C Java Python等编程语言。从2009年开始接触Python,后续借空闲时间将个人熟悉的技术干货系统性分享给大家,也许我的分享会让你少走一些弯路,如果您觉得还可以,请多多关注,评论和转发,非常感谢!

猜您喜欢: