列表相关操作
一、列表的创建
1、列表需要使用中括号 [] 和 , 元素之间使用英文的逗号进行分隔
2、列表的创建方式有两种
- 使用中括号
- 调用内置函数list()
#列表的创建 #第一种方法:使用中括号 mylist=['hello','world',98] print(id(mylist)) print(type(mylist)) print(mylist) #第二种方法:调用内置函数list() mylist2=list(['hello','world',98]) print(id(mylist2)) print(type(mylist2)) print(mylist2) 运算结果: 2610096938048 <class 'list'> ['hello', 'world', 98] 2610096986688 <class 'list'> ['hello', 'world', 98]
二、列表的特点
1、列表的元素按顺序有排序
2、索引映射唯一数据
- 顺序从0开始
- 逆序从-1开始
3、列表可以存储重复数据
4、任意数据类型混存
5、根据需要动态分配和回收内存
三、列表的查询操作
1、获取列表中的指定元素的索引
- 如果列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
- 如果查询的元素在列表中不存在,则会抛出ValueError
- 还可以在指定的start和stop之间进行查找
#列表的查找 mylist3=['hello','world',98,'hello'] print(mylist3) print(mylist3.index('hello')) #rint(mylist3.index('sha')) 报错:ValueError: 'sha' is not in list #可以在index中指定查找范围 【a,b) #print(mylist3.index('hello',1,3)) 报错:NameError: name 'hello' is not defined(因为在该范围内没有找到) print(mylist3.index('hello',1,4)) 运行结果: ['hello', 'world', 98, 'hello'] 0 3
2、获取列表中的单个元素
正向索引从0到N-1 举例:lst[0]
逆向索引从-N到-1 举例:lst[-N]
指定索引不存在 抛出异常indexError
3、获取列表中的多个元素——切片
- 语法格式:【start : stop : step】
- 切片操作:
- 切片结果:原列表片段的拷贝——生成新的列表
- 切片的范围:【start , stop)
- step默认为1:简写为[start:stop]
- step为正数:从start开始向后计算切片
- step为负数:从start开始向前计算切片
lst=[10,20,30,40,50,60,70,80] #start=1,stop=6,step=1 print(lst[1:6:1]) #lst的标号从0开始,sto=6其实是第七个元素,但是不包含该数据 #切片是产生了一个新的列表,可以发现两者id值不一样,说明产生了一个新的列表 print('原列表',id(lst)) lst2=lst[1:6:1] print('现列表',id(lst2)) #查看默认步长 print(lst[0:6:]) #[10, 20, 30, 40, 50, 60]可以发现默认步长为1 #设置步长 print(lst[1:6:2]) #[20, 40, 60] #查看默认开始位置 print(lst[:6:]) #[10, 20, 30, 40, 50, 60]可以发现默认开始位置为0 #设置开始位置 print(lst[2:6:1]) #[30, 40, 50, 60] #查看默认结束位置 print(lst[1::1]) #[20, 30, 40, 50, 60, 70, 80]可以发现默认结束位置是整个列表 #全部设置默认 print(lst[::]) #[10, 20, 30, 40, 50, 60, 70, 80]相当于对列表的一次复制 #如果步长为负数-从后向前 print(lst[::-1]) #[80, 70, 60, 50, 40, 30, 20, 10] print(lst[7:0:-1])#[80, 70, 60, 50, 40, 30, 20] 结尾到0但不包括0
4、判断指定元素在列表中是否存在
元素 in 列表名
元素 in 列表名
print('k' in 'kotlin')#True print('k' in 'python')#False lst=[10,20,'hello','python'] print(10 in lst) #True print(100 in lst) #False print(10 not in lst) #False print(100 not in lst)#True
5、列表元素的遍历
#列表的遍历,用for循环 for i in lst: print(i) 运算结果: 10 20 hello python