列表的相关函数

 

# (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 两个方法 使用同列表
"""

 

posted @ 2022-01-18 09:47  urls  阅读(25)  评论(0编辑  收藏  举报