列表是python中内置的可变序列。
形式上用[]把所有元素放在中括号里,相邻元素用,隔开,内容上同一个列表中,元素的类型可以不同,因为它们之间没有任何关系,元素与元素可以不同类型,,元素可以是整数,实数,字符串,列表,元组等内容,也就是列表中可以包含列表,所以python的列表是非常灵活的。
1.列表的创建和删除
使用赋值运算符直接创建列表;
创建空列表emptylist = []
创建数值列表:
list(data)
list(range[start:end:step])#这里用到切片知识可以参考python学习笔记-序列里的切片语法规则。
删除列表可以使用del listname(要删除的列表名)
2.访问列表元素
使用print(listname)可以输出全部列表内容,如果想获取指定的元素则使用print(listname[索引号]
3.遍历列表
可以直接使用for循环实现,语法格式:
for item in listname:#输出的是item的值
print(item) #item是用于保存获取到的元素值
例:
print(""*2,"春晓")
penny = ["春眠不觉晓","处处闻啼鸟","夜来风雨声","花落知多少"]
for item in penny:
print(item)
运行上面代码结果如下:
春晓
春眠不觉晓
处处闻啼鸟
夜来风雨声
花落知多少
还可以使用for循环和enumerate()函数实现
语法格式:
for index,item in enumerate(listname):
#表示输出index和 item
index是用于保存元素的索引
item保存元素的元素值
例:
print(""*2,"春晓")
penny = ["春眠不觉晓","处处闻啼鸟","夜来风雨声","花落知多少"]
for index,item in enumerate(penny):
print(index,item)
运行上面代码结果如下:
春晓
0 春眠不觉晓
1 处处闻啼鸟
2 夜来风雨声
3 花落知多少
添加、修改和删除列表元素
1.添加元素
前面介绍过可以通过加号➕运算符来连接两个列表,但是比较慢,不方便。
可以采取使用列表对象的append(),用于在列表的末尾追加元素,语法格式:
listname.append(obj)#obj为要添加到列表末尾的对象
还可以采用insert()方法用于向列表的指定位置插入元素,但是没有append()执行效率高
如果将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的extend()函数,语法规则:
listname.extend(seq)#listname是原列表,seq是要添加的列表,执行后seq的内容将被追加到listname列表后面
2.修改元素
通过索引获取该元素,然后再为其重新赋值新值即可
3.删除元素
一种是根据索引删除,一种是根据元素值删除。
根据索引删除:del listname[-2]#删除倒数第二个元素
不确定要删除的元素位置时,可以使用列表对象的remove()方法,语法规则:
listname = []
listname.remove("要删除的元素")
如果要删除的元素不在这个列表里,那上述代码还需要改进更严谨一些,就是要先判断这个要删除的元素是否存在,语法规则:
penny = ["春眠不觉晓","处处闻啼鸟","夜来风雨声","花落知多少"]
value = "花落知多少"
if penny.count(value)>0:
penny.remove(value)
print(penny)
(count()方法用于判断指定元素出现的次数,返回结果为0时,表示不存在这个元素)
对列表统计计算
1.获取指定元素出现的次数
语法格式:listname.count(obj)
这个obj只能是精确匹配的元素而不能是元素的一部分
2.获取指定元素首次出现的下标(即索引值)
listname.index(obj)
3.统计数值列表的元素和
使用sum()函数,语法格式:
sum(iterable[,start])#iterable表示要统计的列表,start表示统计结果是从哪个数开始的,是可选参数,没有指定的话默认为0
对列表进行排序
1.使用列表对象的sort()方法,这个原列表元素顺序发生改变,用于对原列表中的元素进行排序,语法格式:
listname.sort(key=None,reverse=False)
#key表示指定从每个列表元素中提取一个比较键,reverse为可选参数
2.使用内置的sorted()函数,对列表排序后,原列表元素顺序不变,语法格式:
sorted(iterable,key=None,reverse=False)
#iterable是原列表,其余跟上面方法一样的
列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表,有如下几种常用语法格式:
1.生成指定范围的数值列表,语法格式如下:
list = [Expression for var in range]
#list表示生成的列表名称,Expression表示式,用于计算新列表的元素,var循环变量,range:采用range()函数生成的range对象
2.根据列表生成指定需求的列表,语法格式:
newlist =[Expression for var in list]
3.从列表中选择符合条件的元素组成新的列表,语法格式:
newlist = [Expression for var in list if condition]
二维列表
1.直接定义二维列表
2.使用嵌套的for循环创建
3.使用推导式创建