变量存储的是一个对象的id,列表存储的是多个对象的引用(id)
列表的创建:使用方括号[];使用内置函数list()
list1 = ['Google', "d", 1997] lis2=list(['Google', "d", 1997]) #三个对象的引用(id)存储在三个连续的空间(列表对象),列表对象的引用(id)存储在list
列表中元素按顺序有序排列
列表索引从 0 开始,第二个索引是 1,依此类推。
#查元素索引
list=['hello','word',98,'hello'] #相同元素则返回相同元素的第一个元素索引
print(list.index('hello'))
>>>0
print(list.index('hello',1,4)) #从'word',98,'hello'中查找
>>>3
print( list[0] ) >>>hello
print( list[1] ) >>>word
切片操作
正负数切片操作:
list= [10, 20, 30, 40, 50, 60, 70, 80] print( list[1:6:1] ) #[20, 30, 40, 50, 60] print( list[1:6:] ) #默认步长为1 print( list[1:6:2] ) #[20, 40, 60] print( list[:6:2] ) #默认从0开始 [10, 30, 50] print( list[1::2] ) #默认 [20, 40, 60, 80] #为负数的情况 print( list[::-1] ) #逆序输出[80, 70, 60, 50, 40, 30, 20, 10] print( list[7::-1] ) print( list[6:0:-2] ) #[70, 50, 30] step为负数时,stop=0则不包含下标为0元素 左闭右开
列表元素的判断及遍历
#判断元素是否在列表中:元素 in/not in 列表名
#遍历 for 迭代变量 in 列表名
#判断元素是否在列表中:元素 in/not in 列表名
#遍历 for 迭代变量 in 列表名
list= [10, 20, 'hello']
for i in list:
print(i) #从列表当中依次去取出元素对象赋值给i并依次输出
>>>10
20
hello
列表元素的添加操作
append():在列表的末尾添加一个元素
extend():在列表的末尾至少添加一个元素
insert():在列表的任意位置添加一个元素
切片:在列表的任意位置添加至少一个元素
#列表元素的添加操作 lst1=[10,20,30] lst1.append(99) print(lst1) #[10, 20, 30, 99] lst2=['hello','word'] #lst1.append(list2) #[10, 20, 30, 99, ['hello', 'word']] 将list2作为一个元素添加到末尾 #list1.extend(list2) #[10, 20, 30, 99, 'hello', 'word'] 向列表末尾一次性添加多个元素 #在任意位置上添加一个元素 lst1.insert(1,66) #在索引为1的位置添加元素 print(lst1) #[10, 66, 20, 30, 99] lst3=['西瓜','水蜜桃','草莓'] #切片:在列表的任意位置添加n个元素 lst1[1:]=lst3 print(lst1) #[10, '西瓜', '水蜜桃', '草莓']
列表元素的删除操作
#列表元素的删除操作
lst=[10,20,30,40,50,60,30]
lst.remove(30) #一次删除一个元素,重复元素只删除第一个,元素不存在则会报错
print(lst) #[10, 20, 40, 50, 60, 30]
lst.pop(1) #删除一个指定索引位置上的元素
print(lst) #[10, 40, 50, 60, 30]
lst.pop() #不指定索引,删除列表中最后一个元素
print(lst) #[10, 40, 50, 60]
#切片 删除至少一个元素,将产生一个新的列表对象
new_lst=lst[1:3]
print('原列表:',lst) #[10, 40, 50, 60]
print('新列表:',new_lst) #新列表: [40, 50]
#不产生新的列表对象,删除原列表中的内容
lst[1:3]=[]
print(lst) #[10, 60]
#清空列表中的所有元素
#clear清空列表
lst.clear()
print(lst) #[]
#del 删除列表
del lst
print(lst) #...not defined
列表元素的修改操作
#列表修改 lst=[10,20,30,40] lst[1]=100 #一次修改一个值(为指定索引的元素赋予一个新的值) print(lst) #[10, 100, 30, 40] lst[1:3]=[200,300,400,500,600] #步长默认为1(为指定的切片赋予一个新的值) print(lst) #[10, 200, 300, 400, 500, 600, 40]
列表元素的排序操作
-
调用列表对象的sort方法,升序排列,可以指定reverse=True 进行降序
-
调用内置函数sorted(),可以指定reverse=True 进行降序,原列表不发生改变
#列表元素的排序
lst=[10,90,58,40]
print('排序前的列表:',id(lst))
#调用列表对象的sort方法,升序排列(对原列表进行的排序操作)
lst.sort()
print('排序后的列表:',lst,id(lst)) #id没变,在原列表的基础上进行
#通过指定关键字参数,进行降序排列
lst.sort(reverse=True) #reverse=True 表示降序排列,reverse=False 就是升序排列
print(lst)
#使用内置函数sorted()对列表进行排序,将产生一个新的列表对象(原列表不发生任何改变)
lst=[10,90,58,40]
#开始排序
new_lst=sorted(lst)
#print(new_lst) #[90, 58, 40, 10]
#指定关键字参数,实现列表元素的降序排列
desc_lst=sorted(lst,reverse=True)
print(desc_lst) #[90, 58, 40, 10]
列表生成式
#列表元素的表达式 lst=[i*i for i in range(1,10)] #产生的1-9的整数序列 print(lst) #[1, 4, 9, 16, 25, 36, 49, 64, 81] #列表中的值为2,4,6,8,10 lst2=[i*2 for i in range(1,6)] print(lst2)



