列表的相关函数
# (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值 # 正向截取 res = lst[::5] print(res) # 0 5 10 # 逆向截取 res = lst[::-3] # -1 -4 -7 print(res) # (5)[:]或[::] 截取所有列表 res = lst[:] res = lst[::] print(res)
3.列表的删除
# (6)列表的删除 ( 可切片 ) lst = ["伟","众","宇","阳","障","宇","雨"] # 1.一次删一个 # del lst[2] # print(lst) # 2.一次删一堆 # del lst[1:-1] # print(lst) # 3.注意点 res = lst[1:-1] del res # 删除的是res这个变量 和 列表无关 print(lst)
4.注意点:
# 额外的注意点 tup = (1,2,3,4,[10,11,12]) # 元组里面的列表可以拿出来修改列表中的元素 print(tup[-1]) tup[-1][-1] = 13 print(tup)
5.列表的常用函数
# 删 # 1.pop 通过指定索引删除元素,若没有索引移除最后那个 (推荐) lst = ["曹静怡","王志国","邓鹏","合理"] # 不指定下标,默认删除最后一个 res = lst.pop() print(res) print(lst) # 指定下标,删除具体某个元素 res = lst.pop(1) print(res) print(lst) # 2.remove 通过给予的值来删除,如果多个相同元素,默认删除第一个 lst = ["曹静怡","王志国","合理","邓鹏","合理"] res = lst.remove("合理") print(res) print(lst) # 3.clear 清空列表 lst = ["曹静怡","王志国","合理","邓鹏","合理"] lst.clear() print(lst) # 改查 参考4.py # 列表的其他相关函数 # index 获取某个值在列表中的索引 lst = ["曹","国","合","鹏","理","辉","蓝","理","绿"] res = lst.index("合理") res = lst.index("合理",3) # 从索引为3的下标开始往后查找 res = lst.index("合理",3,6) # 3 4 5 # 从下标3开始查找到6之前结束查找 # res = lst.index("合理大") error print(res) # count 计算某个元素出现的次数 res = lst.count("合理") # 没有范围的概念 print(res) # sort 对列表排序 lst = [-90,-100,-1,90,78] # 从小到大进行排序 lst.sort() # 从大到小进行排序 lst.sort(reverse=True) print(lst) # 对字符串进行排序(按照ascii编码) lst = ["kobi","james","jordon","yaoming","yi"] lst.sort() print(lst) # 是否可以对中文排序(了解 无规律可循) lst = ["王文","蔡徐坤"] lst.sort() print(lst) # reverse 列表反转操作 lst = [1,2,"a","蔡徐坤","易烊千玺"] lst.reverse() print(lst)
6.列表的深浅拷贝
# ### 列表的深浅拷贝 """ a = 100 b = a a = 200 print(b) => 100 lst1 = [1,2,3] lst2 = lst1 lst1.append(4) print(lst2) => [1, 2, 3, 4] """ # 1.浅拷贝 import copy """模块.方法() 同名模块下的同名方法""" # 方法一 (推荐) """ lst1 = [1,2,3] lst2 = copy.copy(lst1) lst1.append(10) print(lst2) print(lst1) ''' [1, 2, 3] [1, 2, 3, 10] ''' """ # 方法二 """ lst1 = [1,2,3] lst2 = lst1.copy() lst1.append(11) print(lst1) print(lst2) ''' [1, 2, 3, 11] [1, 2, 3] ''' """ # 2.深拷贝 """把所有层级的容器元素都单独拷贝一份,放到独立的空间中""" """ # 现象 lst1 = [1,2,3,[4,5,6]] lst2 = copy.copy(lst1) lst1[-1].append(77) lst1.append(8888) print(lst2) print(lst1) ''' [1, 2, 3, [4, 5, 6, 77]] [1, 2, 3, [4, 5, 6, 77], 8888] ''' """ import copy lst1 = [1,2,3,[4,5,6]] lst2 = copy.deepcopy(lst1) lst1[-1].append(999) print(lst2) print(lst1) ''' [1, 2, 3, [4, 5, 6]] [1, 2, 3, [4, 5, 6, 999]] ''' # 其他容器的深拷贝 lst1 = (1,2,3,{"a":1,"b":[10,20]}) lst2 = copy.deepcopy(lst1) lst1[-1]["b"].append(30) print(lst1) print(lst2) ''' (1, 2, 3, {'a': 1, 'b': [10, 20, 30]}) (1, 2, 3, {'a': 1, 'b': [10, 20]}) ''' """ 总结: 浅拷贝: 只拷贝一级容器中的所有元素独立出一个单独的空间. 深拷贝: 把所有层级的容器中所有元素都单独拷贝一份,形成独立的空间 """ """ tuple 只有count index 两个方法 使用同列表 """