Python语法学习记录(5):LIST 用法

    xiaoxiao2025-08-24  15

    #列表初始化及打印 print("===="*5,"列表初始化及打印:") list1 = ['ele1','ele2','ele3'] print(type(list1)) print("列表打印",list1) print("list1[1]:",list1[1])# 小标,角标,索引 0 1 2 print("list1[-1]:",list1[-1])#从右边往左数1个元素下标是-1 print("list1[-2]:",list1[-2])#从右边往左数2个元素下标是-2 print("list1[-3]:",list1[-3])#从右边往左数3个元素下标是-3 #print("list1[-4]:",list1[-4])#从右边往左数3个元素下标是-3 #小于-3,大于2的索引会报错 print("list1[0:2]:", list1[0:2]) print("list1[1:]:", list1[1:]) print("list1[:2]:", list1[:2])

    print("===="*5,"列表化:") list0 = list(range(0 , 99)) list1 = list('12') list2 = list('12.4') list3 = list('hello') print("列表打印",list0) print("列表打印",list1) print("列表打印",list2) print("列表打印",list3)

    #列表增加append list1 = ['ele1','ele2','ele3'] print("===="*5,"列表增加append:") print("列表打印",list1) list1.append('ele4') # append,增加到末尾 print("列表打印",list1) #列表增加insert print("===="*5,"列表增加insert:") list1.insert(0,'ele0')# insert,在指定是位置增加元素 list1.insert(6,'ele5')# insert 如果指定的小标不存在,那么就在末尾添加 list1.insert(-1,'ele6')# 注意:insert不要用-1,位置不对 重要 print("列表打印",list1) # 修改,即赋值 # 替换list1[6]list1[7] print("===="*5,"修改赋值list1[5]list1[6]:") print("列表打印",list1) t=list1[6] list1[6]=list1[5] list1[5]=t print("列表打印",list1)

    # 查找某个字符在字符串中 list1 = ['ele1','ele2','ele3'] print("===="*5,"查找元素在字符串中") if 'ele1' in list1: print('ele1 is in') else: print('ele1 is not in') if 'ele10' in list1: print('ele10 is in') else: print('ele10 is not in') # 查看某个元素在数组里面的个数,count,不存在返回0 print("===="*5,"查找元素个数") print(list1.count('ele10')) print(list1.count('ele1')) # 找到元素的索引,如果有多个找到第一个,如果找到一个不存在的,就报错 print("===="*5,"找到元素的索引") #print(list1.index('ele10')) print(list1.index('ele2'))

    # 删除pop list1 = ['ele1','ele2','ele3'] print("===="*5,"删除pop") print("列表打印",list1)# pop默认删除最后一个元素,可以指定下标删除 list1.pop() print("列表打印",list1) list1.pop(0) print("列表打印",list1) print("pop :",list1.pop())# 删除直接打印,会将删除的值返回 print("列表打印",list1) # 删除remove 删除不会打印自己 print("===="*5,"删除remove") list1 = ['ele1','ele2','ele3','ele4'] list1[2]=list1[3] print("列表打印",list1) #删除遇到的第一个元素 list1.remove('ele4') print("列表打印",list1) list1.remove('ele4') print("列表打印",list1) # 删除del 删除指定元素 print("===="*5,"删除del") del list1[0] print("列表打印",list1) # clear 清空整个list print("===="*5,"清空整个list") list1.clear() print("列表打印",list1)

    # copy kaobei整个list list1 = [1,2,3] print("===="*5,"copy整个list") list2 = list1.copy() print("列表打印",list2)

    [外链图片转存失败(img-4puK9rIt-1567578572671)(https://i.loli.net/2019/05/26/5ceab3e775ed160686.png)]

    # reverse,反转list list1 = [1,2,3] print("===="*5,"反转list") print("列表打印",list1) list1.reverse() print("列表打印",list1) # sort 排序,默认升序 list1 = [11,200,3] print("列表打印",list1) list1.sort() print("列表打印",list1) list1.sort(reverse=True)# 注意:按照降序排,sort指定reverse=True print("列表打印",list1)

    #求长度 print("===="*5,"求长度len") list1 = [11,200,3] print("长度:",len(list1))

    #+:它主要实现的是多个列表之间的拼接 #*:主要实现的是列表的复制和添加 #比较>,<:主要进行数据型列表的元素比较 #and等:;逻辑运算符,可以进行列表之间的逻辑判断 #列表的运算 加法 #效率低于extend print("===="*5,"列表的运算:加法") list1 = [1,2,3] list2 = [4,5,6] list3 = list1 + list2 #list4 = list3 - list1 没有减法 print("列表打印list3:",list3) #列表的运算 乘法 print("===="*5,"列表的运算:乘法") list4 = list1*3 print("列表打印list4:",list3) #列表大小比较 print("===="*5,"列表大小比较") import operator a = [1,2,3] b = [1,2,3] c = [1,2,0] print(operator.lt(c,b)) #相当于a<b less than 从第一个数字或字母(ASCII)比大小 print(operator.le(c,b)) #相当于a<=b less and equal print(operator.eq(a,b)) #相当于a==b equal 字母完全一样,返回True, print(operator.ne(c,b)) #相当于a!=b not equal print(operator.gt(a,c)) #相当于a>b greater than print(operator.ge(a,c)) #相当于a>=b greater and equal #最大值最小值及其所在位置 print("===="*5,"最大值最小值及其所在位置") a = [1,2,3] print("最大值:",max(a)) print("最大值所在位置:",a.index(max(a))) print("最小值:",min(a)) print("最小值所在位置:",a.index(min(a)))

    #============================================================================ # 二维数组 print("===="*5,"二维数组") list2 =[1,2,[31,32]]#实际是个长度为三的list list2[2]为又一个list print("二维数组列表打印list2:",list2) print("len of list2:",len(list2)) print("list2[0]:",list2[0]) print("list2[1]:",list2[1]) print("list2[2]:",list2[2]) print("list2[2][0]:",list2[2][0]) print("list2[2][1]:",list2[2][1]) list2 =[[1,2],[31,32]]#实际是个长度为三的list list2[2]为又一个list print("二维数组列表打印list2:",list2) print("len of list2:",len(list2)) print("list2[0]:",list2[0]) print("list2[0][0]:",list2[0][0]) print("list2[0][1]:",list2[0][1]) print("list2[1]:",list2[1]) print("list2[1][0]:",list2[1][0]) print("list2[1][1]:",list2[1][1]) # 三维数组 print("===="*5,"三维数组") list3 =[2,5,[1,7,[0,10]]]#实际是个长度为三的list list3[2]为又一个list print("三维数组列表打印list3:",list3) print("len of list3:",len(list3)) print("list3[0]:",list3[0]) print("list3[1]:",list3[1]) print("list3[2]:",list3[2]) print(list3[-1][-1][-1]) # 打印最后一个

    # 合并两个数组extend print("===="*5,"合并两个数组extend") list2 =[[1,2],[31,32]] list2.extend(list3) print("列表打印list2:",list2) print("len of list2:",len(list2)) print("===="*5,"合并两个数组append") list2 =[[1,2],[31,32]] list2.append(list3) print("打印list2:",list2) print("len of list2:",len(list2))

    #============================================================================ # 循环 print("===="*5,"循环") list1 = [[1] for i in range(3) ] print("打印list1:",list1) list1[0].append(3) list1[1].append(5) list1[2].append(7) print("打印list1:",list1) print("===="*5,"循环") list1 =['ele0','ele1','ele2'] for ele in list1: #如果直接for循环一个list的时候,那面每次循环的值是这个list里面的元素,换行打印list数组里面的元素 print(ele) # 循环,同时打印索引和数组值enumerate(枚举),必须含有两个参数 print("===="*5,"循环enumerate(枚举)") for index, item in enumerate(list1):#i,v随意注册的变量 print ("index = %s,value = %s" % (index, item)) # index = 0,value = cm1 print("===="*5,"循环range") for i in range(len(list1)): print ("index = %d,value = %s" % (i, list1[i])) # 注意:循环list时,不能有删除的操作,因为一旦删除一次,list就变化,如下:删除所有奇数 # 错误写法 #在进行删除后 list数据变少更新之后 迭代器可能仍然按照原来的地址进行迭代寻址 print("===="*5,"删除操作错误写法") list1 = [1,1,2,3,4,5,6,7,8,9] for ele in list1: print("this turn ele is :",ele) if ele%2!=0: list1.remove(ele) print("after remove list is:",list1) print("打印list1:",list1) print("===="*5,"删除操作错误写法浅拷贝") list1 = [1,1,2,3,4,5,6,7,8,9] list2 = list1 # 注意:不能用list2=list1,指针一样 # 注意:list2=list1浅拷贝 # 注意:list2 =list1[:]深拷贝 # 深浅拷贝的区别,内存地址是否变化 参考下面的打印地址部分 for ele in list2: print("this turn ele of list2 is :",ele) if ele%2!=0: list1.remove(ele) print("after remove list1 is:",list1) print("打印list1:",list1) # 正确写法 # remove(),()中是值 print("===="*5,"删除操作正确写法") list1 = [1,1,2,3,4,5,6,7,8,9] list2 = list1[:] for i in list2: if i%2!=0: list1.remove(i) print("打印list1:",list1) print("打印list2:",list2)

    # 打印list的地址id() print("===="*5,"打印list的地址id") list1 = [1,2,3,4,5,6,7,8,9] list2 = list1 list3 = list1[:] print("打印list1:",list1) print("打印list2:",list2) print("打印list3:",list3) print("List1地址:",id(list1)) print("List2地址:",id(list2)) print("List3地址:",id(list3))

    #============================================================================ # 切片:list取值的一种方式,顾头不顾尾 print("===="*5,"list的切片(顾头index不顾尾index)") list1 = [1,2,3,4,5,6,7,8,9] print("打印list1:",list1) slice_list1 = list1[0:1] #取list1[index1]直到list1[index2],不取list1[index2] print("打印slice_list1=list1[0:1]:",slice_list1) slice_list2 = list1[:3] # 如果切片前面一个值不写的话 从开头开始取 直到list1[index1] 不取list1[index1] print("打印slice_list2=list1[:3]:",slice_list2) slice_list3 = list1[3:] # 如果切片后面一个值不写的话 从list1[index1]开始取 直到末尾 取末尾 print("打印slice_list3=list1[3:]:",slice_list3) slice_list4 = list1[:] # 如果切片前面后面的值都不写的话,全部取出来 print("打印slice_list4=list1[:]:",slice_list4) #切片之后地址均不一样 print("list1地址 :",id(list1)) print("slice_list1地址:",id(slice_list1)) print("slice_list2地址:",id(slice_list2)) print("slice_list3地址:",id(slice_list3)) print("slice_list4地址:",id(slice_list4)) #插入新值 print("===="*5,"list的切片插入新值") list1 = [1,10,100,1000] print("打印list1:",list1) list1[1:1] = [2,3,4] print("打印list1:",list1) print("===="*5,"list的切片删除元素") #删除元素 list1[1:4] = [] print("打印list1:",list1) # 步长,常用概率高:间隔几个取一个 print("===="*5,"list的切片(步长)") list1 = [1,2,3,4,5,6,7,8,9] #new_slice_list = list1[index1:index2:step] # 从index1取到index2,步长为step slice_list1 = list1[::1] slice_list2 = list1[::2] slice_list3 = list1[::3] print("步长是正数时,从左往右取") print("步长1:",slice_list1) print("步长2:",slice_list2) print("步长3:",slice_list3) #不够则结束 slice_list_1 = list1[::-1] slice_list_2 = list1[::-2] slice_list_3 = list1[::-3] print("步长是负数时,从右往左取") print("步长-1:",slice_list_1) print("步长-2:",slice_list_2) print("步长-3:",slice_list_3) new_slice_list1 = list1[1:5:1] print("start: 1 end: 5 step: 1:",new_slice_list1)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值 new_slice_list2 = list1[-1:-5:-1] print("start:-1 end:-5 step:-1:",new_slice_list2)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值 new_slice_list3 = list1[1:5:-1] print("start: 1 end: 5 step:-1:",new_slice_list3)#用的频率低,最后是-1,代表从右向左取值,小标依次为-1、-2、-3,取头不取尾,所以不取-3的值

    #============================================================================ #特殊方法初始化列表 print("===="*5,"特殊方法初始化列表") list1 = [6]*5 print("打印list1:",list1) list1 = [6 for i in range(0, 5)] print("打印list1:",list1) list1 = [[] for i in range(0, 5)] print("打印list1:",list1) list1 = [i+1 for i in range(0, 5)] print("打印list1:",list1) list1 = [i+1 for i in range(0, 5)] print("打印list1:",list1) list1 = [[i for i in range(0, 5)] for j in range(5)] print("打印list1:",list1) list1 = [(i, j) for i in range(0,5) for j in range(0,5) ] print("打印list1:",list1) list1 = [ele for ele in [(i, j)for i in range(5) for j in range(5)]] print("打印list1:",list1)

    最新回复(0)