变量:相当于是一个容器,每次只能存储一个数据
作用:相当于是一个容器,可以同时存储多个数据
本质:一种有序的集合【有序:数据的存放顺序和底层存储的顺序是相同】
列表中的元素本质存储的是一个变量【引用】,列表是可变的【一个列表一旦被定义,则在代码运行的过程中,其中的元素的值可以随时发生改变】
num = 10
list1 = [43,5,45,46,5]
print(id(list1[0]))
list1[0] = 100
下方为具体使用:
#1.创建【定义一个列表类型的变量】 #命名方式:lxx listxxx,不建议直接使用list #其中允许存放重复元素 list1 = [45,23,2,54,54,6] print(list1) #其中允许存放不同类型的数据 list2 = ["hello",4637,False] print(list2) #列表元素的访问 #索引/下标/角标:取值范围:0~len(xx) - 1 或者 -1~ - (len(xxx)) print(list1[3]) print(list1[-1]) #print(list1[20]) #IndexError: list index out of range 列表下标越界 #列表元素的替换/修改 list1[3] = 473 print(list1) #组合:生成了一个新的列表 print(list1 + list2) print(list1) #列表元素的重复 print(list1 * 3) print(list1) #判断某个元素是否在列表中 print(10 in list1) #False print(10 not in list1) #True print(45 in list1) #True print(45 not in list1) #False #列表切片【截取】:根据指定的列表获取子列表 list3 = [45, 23, 2, 473, 54, 6,5,6,56,5] print(list3[2]) print(list3) #格式:列表名[start:end:step],包头不包尾 #获取从指定下标开始到结尾的元素组成的一个子列表 print(list3[2:]) #获取从开头到指定下标的元素。。。。 print(list3[:6]) #截取指定区间 print(list3[2:6]) #特殊情况1:如果end超出了下标的范围,则默认获取从指定下标开始到结尾的元素 print(list3[4:100]) #等价于 print(list3[4:]) #特殊情况2:step在默认情况下为1 print(list3[1:6:2]) #1,3,5 print(list3[-1:-6]) #当start和end都为负数,step为正数的时候,获取的结果为[] print(list3[-1:-6:-2]) #当start,end和step都为负数的时候,表示倒序 #将列表倒序输出 print(list3[-1::-1]) print(list3[::-1]) #列表系统功能 #1.添加元素 #1.1append,追加,在列表的末尾添加元素 常用 l1 = [22,33,44,55] print(l1) #追加单个元素 l1.append(66) print(l1) #追加多个元素,不能直接追加,通过列表的形式追加,形成了一个二维列表 #l1.append(77,88) #报错:TypeError: append() takes exactly one argument (2 given) l1.append([77,88]) print(l1) #结果:[22, 33, 44, 55, 66, [77, 88]] #1.2extend,扩展,在列表的末尾添加元素 l2 = [22,33,44,55] #追加单个元素,不能直接添加,参数一定是可迭代的 #l2.extend(66) #T报错:ypeError: 'int' object is not iterable l2.extend([66]) print(l2) l2.extend([77,88]) print(l2) #结果:[22, 33, 44, 55, 66, 77, 88] """ 总结: 列表名.功能名(xx) append可以直接添加单个元素,而extend不能 append在添加多个元素的时候,是以列表的形式添加,而extend只添加元素【打碎加入】 """ #1.3insert,插入,在指定索引处插入一个元素,后面的元素向后顺延 #列表名.insert(索引,被插入的元素) l3 = [22,33,44,55] #插入单个元素 l3.insert(2,66) print(l3) #插入多个元素:和append类似,将整个列表直接插入 l3.insert(1,[77,88]) print(l3)
#2.删除 #2.1pop,弹出,移除并获取列表中指定索引处的元素 在栈中【列表的底层工作原理是栈】 list1 = [11,22,33,44,55] #注意:pop在默认情况下删除的是最后一个元素 result1 = list1.pop() print(list1) print(result1) result2 = list1.pop(2) print(list1) #2.2remove,移除,直接操作的是元素 list2 = [11,22,33,44,55,33,33,55] list2.remove(22) print(list2) #注意:移除指定元素在列表中第一次匹配到的元素【从左往右】 list2.remove(33) print(list2) #2.3clear 清除,将指定列表变为空列表 使用场景:循环中,每次需要清空【重置】列表 list2.clear() print(list2)
#3.获取 list1 = [54,6,57,5,57,7,6,7,57] #3.1len(),获取列表长度 l = len(list1) #3.2max(),获取列表中的最大值 print(max(list1)) #3.3min(),获取列表中的最小值 print(min(list1)) #练习:模拟max或者min的功能,求三个数中的最大值 #假设法 num1 = 43 num2 = 437 num3 = 2 #定义一个变量,用于记录最大值 max1 = num1 if num2 > num1: max1 = num2 if num3 > max1: max1 = num3 #3.4index(),获取指定元素在原列表中第一次匹配到的索引 print(list1.index(57)) #模拟index的功能 for i in range(len(list1)): if list1[i] == 57: print(i) #3.5count(),统计个数,统计指定元素在列表中出现的次数 c = list1.count(57) print(c) list1 = [54,6,57,5,57,7,6,7,57,57,57,436] #练习:将list1中57给全部删除 # list1.remove(57) # list1.remove(57) # list1.remove(57) # print(list1) #统计57在列表中出现的次数 num = 57 c = list1.count(num) n = 1 while n <= c: list1.remove(num) n += 1 print(list1)
import copy