python中列表的基本操作:Python3自学第5天列表list
python中列表的基本操作:Python3自学第5天列表list列表的索引和切片与前面讲的字符串索引是相同的, [头下标:尾下标) list切片遵循“左闭右开”原则,也叫“包左不包右”。实例代码:list 索引和切片:今天我们了解下数据类型中的列表list,是Python中最常用的序列之一。使用方括号[ ]来创建列表,元素item间用逗号( )隔开;实例代码:从上面的实例我们可以看出,list中的元素item可以是不同类型的对象;还可以看出上面的list在定义时字符串元素item使用了单/双引号,输出结果时Python解释器默认用单引号表示字符串元素,我们自己在定义字符串元素时可以借鉴一下。
在开始之前我们先了解一下序列(sequence):
序列中的元素都是有序的,其实在前面“极客干货”已经分享过一种序列了,那就是字符串《Python3 自学第4天:字符串》
Python总共有6个内置的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。
序列的操作包括:索引、长度、切片、遍历、组合(序列相加)、检查成员、重复(乘法)、最小值和最大值。
今天我们了解下数据类型中的列表list,是Python中最常用的序列之一。
使用方括号[ ]来创建列表,元素item间用逗号( )隔开;实例代码:
从上面的实例我们可以看出,list中的元素item可以是不同类型的对象;还可以看出上面的list在定义时字符串元素item使用了单/双引号,输出结果时Python解释器默认用单引号表示字符串元素,我们自己在定义字符串元素时可以借鉴一下。
list 索引和切片:
列表的索引和切片与前面讲的字符串索引是相同的, [头下标:尾下标) list切片遵循“左闭右开”原则,也叫“包左不包右”。实例代码:
合理的使用负索引进行访问和切片,可以提高检索list的效率。对正负索引和切片的概念不清楚的地方,可以了解下《Python中字符串截取(切片)的两种方式》。
列表拼接,拼接后会产生一个新列表。实例代码:
注意: = 操作符是把b列表中每个元素拼接到了a列表元素的后面。
使用list.append()追加元素,和 =操作符是有区别的,实例代码:
可以看出,append(obj) 参数整体作为一个元素被追回到b列表最后一位,这就是下面要讲的嵌套。
list 嵌套
在前面刚才提到了list中的元素可以是不同的数据类型对象;实例代码:
说明:
list_a[-1]:取出a列表最后一位元素,它是list类型;
list_a[-1][-1]:取出a列表最后一个元素中的最后一个元素。
Python内置函数
用 in 判断是否存在于列表中
列表推导式:这个很重要也比较常用,格式如下:
[表达式 for 变量 in 可迭代对象] 或 [表达式 for 变量 in 可迭代对象 if 条件]
list 常用的几个方法:
注意了,上面list.sort()只针对元素类型相同的列表进行排序,不同类型元素的列表进行排序是会报错的;实例代码:
总结一下sort与sorted区别:
sort是list自身的方法;sorted是Python内置函数,可以对所有可迭代的对象进行排序操作。
list的sort方法改变的是原列表中元素的顺序,而内置函数sorted返回的是一个新的list,原列表保持不变。
总结一下上面的列表复制:
id() 获取对象的内存地址,这样 = 和 copy()两者的区别就明显了;
使用=是引用赋值,两个对象指向同一块内存地址,变更其中一个另外一个也会跟着变;
copy()是复制一个副本,原对象和新复制的对象互不影响。
del语句删除一个或者多个对象的引用(引用可以理解为给对象贴的标签),而不是删除内存中的对象(value);
当某个对象的所有引用都被删除后(对象的所有标签被撕完后),会自动执行魔法方法__del__将这个对象作为垃圾回收掉。实例代码:
OK!Python数据类型里的列表list就分享到这里,如果您有什么问题,请在评论区留言,我会及时回复,感谢!
上一篇:Python3 自学第4天:字符串
下一篇:Python3 自学第6天:元组tuple
【极客干货】从事IT行业十余年,在移动互联网开发,J2EE企业级开发,IOT物联网,AI人工智能等方面有点技术积累,熟练使用C/C Java Python等编程语言。从2009年开始接触Python,后续借空闲时间将个人熟悉的技术干货系统性分享给大家,也许我的分享会让你少走一些弯路,如果您觉得还可以,请多多关注,评论和转发,非常感谢!