文章目录
内容介绍
一、列表是什么?
二、列表的操作
(一)列表的索引
(二)列表元素的增删
(三)列表的排序、求列表的长度
总结
本节主要讲Python基础知识中的列表,讲解列表的建立以及对列表的一些基础操作。
Python主要内置类型包括数字、序列、映射、类、实例和异常。其中序列是最基本的数据结构。序列中的每个元素都会被分配到一个数 ,用于表示它的位置,这个数称为索引。一般来说,第一位的索引是0,第二位索引是1,依此类推。
Python包含6中内置的序列,即列表、元组、字符串、Unicode字符串、buffer对象和 xrange 对象。其中列表、元组和字符串是最常用的序列。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
如下所示建立了一个列表week。列表的基本单元是元素,每个元素之间用逗号隔开。 列表的数据项不需要具有相同的类型。
week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
列表是有序的集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
# 列表是有序的集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 # 要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。 week = ['tuesday', 'Wednesday', 'thursday', 'Friday', 'saturday'] print(week) print(week[3]) print(week[3].title()) # 在Python中,第一个列表元素的索引为0,而不是1。(在Matlab中,第一个索引是1,后者方便于计算实用,注意不要搞混) # Python提供了一种倒叙读取的方法,如下所示,当索引为“-2”时,指倒着取第2个列表元素。 print(week[-2]) # 列表中的元素可像使用其他变量一样被使用。例如,可以用列表中的元素拼接打印输出。 message = 'Today is '+week[2].title()+' ,tomorrow is '+week[3].title()+ '.' print(message)
如下代码和图所示,注意这里可以看出“方法”、“函数”和”语句“的区别。
# 1.在列表末尾增加一个元素,可以使用.append()方法 # 用法为 “ 列表名.append('元素名') ” week.append('Sunday') # 在列表最末尾插入sunday print('\n列表末尾增加:') print(week) # 2.在列表任意位置插入一个元素,使用.insert()方法可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。 # 用法为 “ 列表名.insert(索引(数), '元素名') ” week.insert(0, 'Monday') # 在列表最开头插入monday print('\n列表中间插入:') print(week) # 3.删除列表任意位置处的元素,可以使用del语句,使用时要知道需删除元素的索引。 # 用法为 “ del 列表名[需要删除元素的索引] ” del week[3] print('\n列表中间删除:') print(week) # 4.有时候需要弹出列表中的某个元素,并且保存下该元素,可以使用pop()方法。 # 用法为 “ a = 列表名.pop(需要弹出的元素索引) ”这条语句可以将列表中对应索引处的元素弹出并赋值给a,同时列表中删除该元素。 TanChuYuanSu = week.pop(-1) # 弹出最后一个元素——特别地,如果pop()的括号中什么参数也不给,默认弹出的是最后一个元素。 print('\n列表中删除并弹出:') print(week) print('弹出的元素是:', TanChuYuanSu) # 5.在不知索引只知道元素值的情况下,删除列表中某个元素,可以使用remove()方法 print('\n只知道值,不知道索引的删除:') BuShangXue = 'saturday' print('因为不上学,所以去掉', BuShangXue) week.remove(BuShangXue) print(week) # remove()方法一次只能删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。
week = ['Monday', 'tuesday', 'Wednesday', 'thursday', 'Friday', 'saturday', 'Sunday'] week1 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] number = [1, 23, 4, 5, 1214, 75, 43, 9, 2, 0] # 1.对列表进行永久性排序,可以使用sort()方法. print('原始列表:') print(week) print(week1, '\n') week.sort() print('顺序排列之后的列表:') print(week) # 看上去似乎没有按照字母排序,再试试week1 week1.sort() print(week1, '\n') # 这里,当所有元素首字母都是大写之后,sort方法成功将其按字母从小到大排列 number.sort() print(number) # 也可以用这个方法排列数字 number.sort(reverse=True) print(number, '\n') # 如果给sort一个参数“reverse=True”,则可以实现从大到小的逆叙排列。 # 值得注意的是,sort的排列是永久的不可逆的。至于为什么不能正确排列出大小写字母,需要掌握ASCII码的相关知识。 # 2.要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。 # 函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。 week1 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] print("原始列表:") print(week1) print("\n使用sorted()方法进行排序后:") print(sorted(week1)) print("\n看看原始列表有没有被改变:") print(week1) # 如果需要将字母逆序排列,可向函数sorted()传递参数reverse=True。 print("\n逆序排列:") print(sorted(week1, reverse=True)) # 3.如果需要把列表中的元素倒序排列,可使用reverse()方法。注意,此处倒序排列指的是把列表中第一个元素放到最后一个,以此类推。 week1 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] print(week1, '\n') week1.reverse() print('倒序排列以后:') print(week1) # 4.如果想知道列表的长度,可以使用函数len()。 print('列表week1的长度为:', len(week1))
本次学习了Python最常见的数据类型列表,前文给出了一些具体的针对列表的操作,以及这些操作产生的影响。此处参考网络和书本,给出一个较为全面的总结式概括,以方便后续查找使用。鉴于本人能力有限,欢迎批评指正。
对于列表的操作: 1.Python包含以下函数 cmp(list1, list2) # 比较两个列表的元素 len(list) # 列表元素个数 max(list) # 返回列表元素最大值 min(list) # 返回列表元素最小值 list(seq) # 将元组转换为列表 2.Python包含以下方法: list.append(obj) # 在列表末尾添加新的对象 list.count(obj) # 统计某个元素在列表中出现的次数 list.extend(seq) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) list.index(obj) # 从列表中找出某个值第一个匹配项的索引位置 list.insert(index, obj) # 将对象插入列表 list.pop([index=-1]) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.remove(obj) # 移除列表中某个值的第一个匹配项 list.reverse() # 反向列表中元素 list.sort(cmp=None, key=None, reverse=False) # 对原列表进行排序 3.组合与截取: [a, b, c] + [d, e, f]——>[a, b, c, d, e, f] # 组合两个列表 ['666'] * 6 ——>['666', '666', '666', '666', '666', '666'] # 对列表中元素进行重复 3 in [1, 2, 3]——>True # 判断元素是否存在于列表中,返回布尔值 for x in [1, 2, 3]: # 让x在列表中依次取值,循环次数为列表的长度 列表名[头下标i:尾下标j:步长k] list[1:2:66] # 截取列表中一部分,从第一个数索引所在的元素开始,到第二个数索引所在的元素为止,步长是第三个数 # 这三个数可以缺省,一般有这几种可能: # 1.只有头下标i和冒号(代表的是从该头下标i的元素开始截取,一直到最后) # eg:list[1:]表示从第2位开始截取,第2位及之后所有内容被截取出来。 # 2.只有冒号和尾下标j(代表的是从开始一直截取到j-1的元素) # eg:list[:10]表示从第1位开始,到第9位之间的所有内容被截取出来。 # 3.头下标i,冒号和尾下标j都有(代表的是从i一直截取到j-1的元素) # eg:list[1:10]表示从第2位开始,到第9位之间的所有内容被截取出来。 # 4.头下标i,冒号,尾下标j,冒号,步长k都有(代表的是从i开始,每k步取一次,一直截取到j-1位) # eg:list[1:10:2]表示从第2位开始,每2位取一次,一直截取到第9位。即取出第2、4、6、8位。