变量可以存储一个元素,而列表是一个大容器,可以储存N个元素,程序可以方便的对这些数据进行处理 列表的特点: 1.列表元素按顺序有序排序 2.索引映射唯一一个数据 3.列表可以存储重复数据 4.任意数据类型混存 5.根据需要动态分配和回收内存 """""" 列表的查询操作: 可以用in和not in查询元素是否在列表内
print(元素 in 列表名)
print(元素 not in 列表名)
index() #使用方法: 列表名.index(列表内的元素) 特点: 获取列表中指定元素的索引 1.如果查询到列表中存在N个相同的元素,只返回相同元素中的一个元素的索引 2.如果查询的元素在列表中不存在,则会抛出ValueError 3.还可以在指定的start和stop之间进行查找 获取列表中单个元素 1.获取单个元素,正向索引从0到N-1 举例:list(0) 2.逆向索引从-N到-1 举例:lst[-N] 3.指定索引不存在,抛出indexError 获取列表中多个元素(切片) 切片是原列表片段的拷贝 语法格式:
列表名[start:stop:step]
注意: #不写step的话,步长默认为1,切片的范围(start,stop) step步长为正数,从start开始,往后计算切片。 例:
[start:stop] 没有step,默认步长为1
[:stop:step] 切片的第一个元素默认是列表的第一个元素
[start::step] 切片的最后一个元素默认是列表的最后一个元素
step步长为负数,从start开始,往前计算切片。
[:stop:step] 切片的第一个元素默认是列表的最后一个元素
[start::step] 切片的第一个元素默认是列表的第一个元素
列表的每一个元素都有自己的正负索引值 例:
索引 -7 -6 -5 -4 -3 -2 -1
数据 "hello" "world" 123 98.6 "world" 125 "world"
索引 0 1 2 3 4 5 6
"""创建列表的第一种方式,使用[]"""
hua=[123,"abc","奥特曼","pass",123]
print(hua)
print(hua.index("abc"))
print(hua.index("奥特曼",1,3)) #在索引1,2里寻找"奥特曼"这个元素,如果未找到,则返回ValueError
"""列表的第二种创建方式,使用内置函数list()"""
zhi2=list([888,"bbq","迪迦","python"])
print(zhi2[0]) #获取列表里索引为0的元素
print(zhi2[-4]) #获取列表索引为-4的元素
print(zhi2[-10]) #没有这个索引,IndexError: list index out of range
列表的增加操作:
append() 在列表的某位添加一个元素
extend() 在列表的末尾至少添加一个元素
insert() 在列表的任意位置添加一个元素
切片 在列表的任意位置添加至少一个元素
例:
#在末尾添加一个元素 列表名.append()
lst=[10,20,30]
print("添加元素之前",lst,id(lst))
lst.append(100)
print("添加元素之后",lst,id(lst))
#向列表的末尾一次性添加多个元素 列表名.extend(lst2)
lst2=["hello","world"]
lst.append(lst2)
print("使用append添加",lst)
lst.extend(lst2)
print("使用extend添加",lst)
#在任意指定的位置添加元素 列表名.insert(位置,添加的元素)
#例:在列表名为lst,索引为1的元素后面添加一个元素99。 lst.insert(1,99)
lst.insert(2,"yes")
print(lst)
#在任意位置上添加N多个元素,切片。
#例:
lst3=[True,False,"hello"]
lst[1:]=lst3 #从索引为1开始往后的全部切除,替换为lst3的列表上的元素
print(lst)
列表元素的删除操作: remove() 一次删除一个元素,重复元素只删除第一个,元素不存在则抛出ValueError pop() 删除一个指定索引位置上的元素,指定索引不存在抛出IndexError,不指定索引,删除列表中最后一个元素 切片 一次至少删除一个元素 clear() 清空列表 del 删除列表
hua=[10,20,30,40,50,60,30]
hua.remove(30) #从列表中移除一个元素,如果有重复,则一处第一个
print(hua)
hua.pop() #不指定索引的话,则删除最后一个
print(hua)
hua.pop(1) #删除索引为1的元素
print(hua)
#切片删除,lst[1,3] 删除索引1到索引3的元素,删除索引1和索引2的元素 #清除列表中的所有元素 列表名.clear() #删除列表 del lst
"""
修改列表
"""
zhi=[10,20,30,40]
#一次修改一个值
zhi[3]=888
print(zhi)
#一次修改多个值,切片替换
zhi[1:3]=[300,400,500,"yes"] #将索引为1和2的元素替换为别的元素,替换的元素可以比切片的元素多或者少
print(zhi)
列表的排序
wei=[70,20,33,99,22,520]
print("排序前的列表",wei)
wei.sort() #不赋值,默认是升序
print("排序后的列表",wei)
wei.sort(reverse=True) #reverse=True 降序排序 False是升序
print(wei)
列表生成式
huawei=[i for i in range(1,10)] #for循环将值赋给开头的i,列表的值等于i
print(huawei)
huawei1=[i*i for i in range(1,10)] #i可以使用任何算数表达式,可以和人数数字相加相减
print(huawei1)