概述
1.1 列表是什么
列表是由一系列按特定顺序排列的元素组成,鉴于列表通常包含多个元素,给列表指定一个复数的名称(如:names、citys)是个不错的习惯
1.1.1 访问列表
列表是有序集合,要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> print(citys[0]) beijing
1.1.2 列表索引从0开始而不是1
在Python中,第一个列表元素的索引为0,而不是1,即要访问列表的任何元素,都可将其位置减1,并将结果作为索引,如访问第三个元素,可用索引2
>>> print(citys[1]) shanghai >>> print(citys[2]) shenzhen
python为访问最后一个列表元素提供一种特殊语法,通过将索引指定为-1,可返回列表中最后一个元素,这种约定也适用于其他负数索引,例如索引-2返回倒数第二个元素,
索引-3返回倒数第三个元素,以此类推
>>> print(citys[-1]) chongqing >>> print(citys[-2]) shenzhen
1.2 修改、添加和删除元素
1.2.1修改列表元素
修改元素语法与访问元素语法类似,指定列表名和要修改的元素索引,再指定该元素的新值
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> print(citys[0]) beijing >>> citys[0] = "hangzhou" >>> print(citys[0]) hangzhou >>> print(citys) ['hangzhou', 'shanghai', 'shenzhen', 'chongqing']
1.2.2在列表中添加元素
1.在列表末尾添加元素 使用方法append()
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> citys.append('guangzhou') >>> print(citys) ['beijing', 'shanghai', 'shenzhen', 'chongqing', 'guangzhou']
2.在列表中插入元素 使用方法insert()可在列表任意位置添加新元素,因此需要指定新元素的索引和值
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> citys.insert(1, 'guangzhou') >>> print(citys) ['beijing', 'guangzhou', 'shanghai', 'shenzhen', 'chongqing']
1.2.3从列表中删除元素
1.如果知道将要删除的元素在列表中的位置,可使用del语句
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> del citys[0] >>> print(citys) ['shanghai', 'shenzhen', 'chongqing']
使用del可删除任意位置处的列表元素,条件是知道索引
2.有时候,你要将元素从列表中删除,并接着使用它的值,比如,飞机大战游戏中你将敌机击杀,将敌机从存活敌机列表中删除时,还要获取敌机的x、y轴坐标,以便在相应的位置
显示爆炸效果;或者web应用程序中将活跃用户删除,并将他加入到非活跃用户中
方法pop()可删除列表末尾的元素,并让你可以接着使用它,pop(弹出)源自于这样的类比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶的元素(类似手枪弹夹或羽毛球筒)
>>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> pop_city = citys.pop() >>> print(pop_city) chongqing >>> print(citys) ['beijing', 'shanghai', 'shenzhen'] pop()也可以用来删除列表中任意位置的元素,只要在括号中指定要删除元素的索引即可 >>> index_pop =citys.pop(1) >>> print(index_pop) shanghai >>> print(citys) ['beijing', 'shenzhen'] 当不确定使用del还是pop()时, 有一个很简单的判断标准:如果你要从列表中删除一个元素并不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用pop()方法。
3.根据值删除元素
有时候你不知道要从列表中删除的值的所在位置。如果你知道要删除的元素的值,可使用remove()方法
使用remove()方法删除元素时,你也可以接着使用它的值,因为知道元素的值,可事先将元素的值赋值给变量,虽然元素已被删除,但它的值还存储在变量中 >>> citys = ['beijing', 'shanghai','shenzhen','chongqing'] >>> rm_city = "beijing" >>> citys.remove(rm_city) >>> print(citys) ['shanghai', 'shenzhen', 'chongqing'] 注意:remove()只删除第一个指定的值,如果要删除的值在列表中多次出现,就需要使用循环判断是否删除了所有这样的值
1.3组织列表
1.3.1 使用sort()方法对列表进行永久性排序,默认按照字符编码顺序进行排序
>>> cars =['bmw','audi','subaru','tuyota'] >>> cars.sort() >>> print(cars) ['audi', 'bmw', 'subaru', 'tuyota'] >>>
还可以按照与字母相反的顺序排列元素,只需要向sort()方法中加入reverse=True.
>>> cars.sort(reverse=True) >>> print(cars) ['tuyota', 'subaru', 'bmw', 'audi']
1.3.2使用函数sorted()对列表进行临时排序,它能够让你按照特定的顺序显示元素,同时不影响它们在列表中的原始排列顺序
同sort()方法相同,向sorted()函数中加入参数reverse=True, 可以按照与字母相反的顺序排列元素
>>> cars =['bmw','audi','subaru','tuyota'] >>> print(sorted(cars)) ['audi', 'bmw', 'subaru', 'tuyota'] >>> print(cars) ['bmw', 'audi', 'subaru', 'tuyota'] >>> print(sorted(cars,reverse=True)) ['tuyota', 'subaru', 'bmw', 'audi']
1.3.3 倒着打印列表
要反转列表元素的排列顺序可以使用方法reverse(),它可永久性的修改列表元素的排列顺序,但可随时恢复原来的排列顺序,只需再调用一次reverse()方法即可
注意:reverse()不是指按照与字母顺序相反的顺序排列元素,而只是反转列表元素的排列顺序
>>> cars =['bmw','audi','subaru','tuyota'] >>> cars.reverse() >>> print(cars) ['tuyota', 'subaru', 'audi', 'bmw']
确定列表长度即列表包含的元素个数可用函数len(),注意它计算列表元素个数时从1开始,所以不用担心遇到差一的错误
>>> len(cars)
4
2.1操作列表
2.1.1使用range()函数和list()函数创建列表,函数range()让Python从你指定的第一个值开始数,并在到达第二个值后停止,不包含第二个值,如果将range()作为list()的参数,输出将作为一个数字列表
>>> numbers = list(range(1,6)) >>> numbers [1, 2, 3, 4, 5]
函数range()还可以指定步长,如下函数range()从2开始数,然后不断的加2,直到达到或者超过终止值停止
>>> even_numbers = list(range(2,11,2)) >>> even_numbers [2, 4, 6, 8, 10]
2.1.2对数字列表执行简单的统计
>>> digits = [1,2,3,4,5,6,7,8,9,0] >>> max(digits) 9 >>> min(digits) 0 >>> sum(digits) 45
2.2.1列表解析(列表生成式)
写列表生成式时,指定一对方括号,里面把要生成的元素放在前面,后面跟for循环,for循环后面还可以选择加上if判断用作筛选
>>> [x*x for x in range(1,11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> [x*x for x in range(1,11) if x % 2 ==0] [4, 16, 36, 64, 100] 还可以使用两层循环,可以生成全排列: >>> [m + n for m in 'abc' for n in 'qwe'] ['aq', 'aw', 'ae', 'bq', 'bw', 'be', 'cq', 'cw', 'ce']
2.3.1切片
要创建切片,可指定一个起始索引和一个结束索引,同range()函数类似的,不包含结束索引
>>> citys =['beijing','shanghai','shenzhen','hangzhou','chengdu','chongqing','suzhou'] >>> print(citys[0:3]) ['beijing', 'shanghai', 'shenzhen']
如果不指定起始索引,则自动从列表开头开始,同样的,不指定结束索引,则终止于列表末尾(包含最后一个元素)
>>> print(citys[:4]) ['beijing', 'shanghai', 'shenzhen', 'hangzhou'] >>> print(citys[3:]) ['hangzhou', 'chengdu', 'chongqing', 'suzhou']
负数索引返回离列表末尾相应距离的元素,同时省略起始结束索引,则可复制一个列表
>>> print(citys[-2:]) ['chongqing', 'suzhou'] >>> copy_citys = citys[:] >>> print(copy_citys) ['beijing', 'shanghai', 'shenzhen', 'hangzhou', 'chengdu', 'chongqing', 'suzhou']
转载于:https://www.cnblogs.com/HJkoma/p/10301585.html
最后
以上就是畅快八宝粥为你收集整理的python基础之列表的全部内容,希望文章能够帮你解决python基础之列表所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复