列表的操作 ''' 列表 list 列表可以使用一个变量存储多个元素,每个元素使用’,',隔开 语法:变量名 = [元素1,元素2......] 列表可以存储不同的数据类型(一个列表里可以放数字、字符串、嵌套列表) 列表可以嵌套多层,嵌套的列表只算一个元素 可以使用索引来提取列表中的元素 ''' # student = [1,'张三','李四','王五','赵六',['孙七',18]] # print(student) #直接打印列表(原型) # # print(len(student)) #查看一个变量的长度可以使用len()内置函数 # print(student[2]) #打印李四 # print(student[2:4]) #打印李四和王五 切片出来的数据类型会继承原来的数据类型 # print(type(student[2:4])) #查看切片的类型 # print(student[2:4:2]) #使用步长来获取想要的数据 # print(student[-1][0]) #嵌套列表可以使用两层索引位置取出对应的值; ''' ------------------列表添加元素------------------------------------- 方法: 1、append() 默认添加到列表的末尾 2、insert() 在指定的索引位置添加元素 3、extend() 将另外一个列表中的元素逐一添加 ''' # list_name = ['张三','李四','王五'] # print(list_name) # list_name.append('赵六') #在末尾添加元素 # print(list_name) # list_name.insert(1,'小明') #在索引位置是1的位置,添加元素 # list_name2=['小蓝','小红','小绿'] # list_name.extend(list_name2) #将name2中的元素逐一添加到name中的最后面,此方法不能指定位置,只能添加在最后; # print(list_name) ''' -----------------------------------列表中查找元素--------------------------------------- 成员运算符: in(存在)->存在未ture,否则为false not in(不存在) --->不存在未ture,否则为false ''' # list_name = ['张三','李四','王五'] #查找张三是否这个列表中 # if '张三' in list_name: # print(True) # else: # print(False) # # list_name = ['张三','李四','王五'] #查找赵六是否这个列表中 # if '赵六' not in list_name: # print(True) # else: # print(False) #知道数据在这个列表里后,怎么知道这个数据的索引位置呢? index():返回查找元素的索引位置: # print(list_name.index('李四')) # print(list_name.index('赵六')) #查找的元素不在列表中,就会报错 '''-----------------------------------列表中修改元素---------------------------------------''' # list_name = ['张三','李四','王五'] # print(list_name) # list_name[1]='李小四' #将李四改为李小四, 这里的:list_name[1],表示取出元素,并且取元素使用:[] # print(list_name) # list_name2=['小红','小绿','小白'] # list_name.append(list_name2) #将list_name2中的元素添加到list_name中; # print(list_name) #如果不知道元素的索引位置,可以用index()修改 # list_name[list_name.index('张三')] = '张小三' # print(list_name) '''-----------------------------------列表中删除元素--------------------------------------- 删除元素的四种方法: pop() 可以指定位置删除,如果不指定,默认删除最后一位 remove() 指定元素值删除 del 可以使用索引或者切片来删除元素 clear() 将列表中的所有元素清空 ''' # student = ['张三','李四',19,'王五',28,'赵六',88,'孙七'] # student.pop() #默认移出最后一位, 只删除一个元素 # print(student) # student.pop(4) #删除索引位置为4的元素 只删除一个元素 # print(student) # student.remove('赵六') #指定元素值进行删除 只删除一个元素 # print(student) # del student[2:4] #通过切片删除2个元素(注意左闭右开原则), 可删除多个元素 # print(student) # student.clear() #清空所有元素 # print(student) '''-------------------------------列表推导式----------------------------------''' #将100以内的偶数添加到列表中 #普通的写法 # list_name=[] #首先定义一个空列表 # for i in range(100): # if i%2==0: # list_name.append(i) # print(list_name) #列表推导式 可以将我们的for循环用[],写在一行里面操作 # list_num2 = [i for i in range(100) if i%2==1] # print(list_num2) '''-------------------------------列表中的其他方法---------------------------------- copy() 将列表复制一份,需要定义一个新变量来接受 count() 统计列表中某个元素出现的次数 reverse() 将列表元素反向 sort() 对列表进行排序,会在原列表中进行排序(不同于copy()方法) sorted() 对列表进行排序,结果会生成一个新的列表,需要定义一个新变量来接受 ''' #如果直接用一个变量去等于另一个变量,这两个变量的值是有关联的,而使用copy()方法,这两个变量的值是没有关联; #eg: # a = [1,2,3] # b = a # c = a.copy() # print(a,b,c) # a[0] = 4 # print(a,b,c) #使用copy()方法,新列表会独立于原列表之外,新列表的改变,不会影响原列表,它独立了; # print(id(a),id(b),id(c)) #"b=a",说明b和a同时指向了同一个内存地址;.copy()是将变量复制出来,赋给一个新的变量,指向不同的内存地址; # list1 = [1,3,5,4,8,4,6,6,4,3,4,2,4,4,7] # print(list1.count(4)) #统计4 出现的次数; # list1.reverse() #将列表反向; # print(list1) # list1.sort() #将列表进行排序,默认为升序 # print(list1) # list1.sort(reverse=True) #将列表进行降序排列 # print(list1) '''---------------以下是sorted的用法-----------------------''' # list2 = [4,5,7,9,3,10] # list2_new = sorted(list2) #将排序后的列表赋值给一个新变量,sorted()方法于其他方法不一样,它的使用方法于count()一致,需要再()中填写变量; # print(list2) # print(list2_new)