day8 python 列表,元组,集合,字典的操作及方法 和 深浅拷贝

时间:2023-03-10 02:47:01
day8 python 列表,元组,集合,字典的操作及方法 和 深浅拷贝

2.2 list的方法

# 增
list.append() # 追加
list.insert() # 指定索引前增加
list.extend() # 迭代追加(可迭代对象,打散追加)
# 删
list.pop() # 指定索引删除(默认删最后一个元素,返回值为删除对象,没有则报错)
list.remove() # 指定元素删除(若有相同元素,默认删除第一个)
list.clear() # 清空

# 其他
list.index() # 获取元素的索引(可指定范围)
list.count() # 获取元素的个数
list.sort() # 排升序
list.sort(revarse = True) # 排降序
list.reverse() # 反转
list.copy() # 复制

  

3、深浅拷贝

import copy
# 浅拷贝(只拷贝第一层)
lst = [1,2,3,[4,5,6]]
lst1 = lst
lst2 = copy.copy(lst)
lst.append(7)
print(lst1,lst2) # [1, 2, 3, [4, 5, 6], 7] ------ [1, 2, 3, [4, 5, 6]]
lst[3].append(888)
print(lst1,lst2) # [1, 2, 3, [4, 5, 6, 888], 7] ----- [1, 2, 3, [4, 5, 6, 888]]

# 深拷贝
lst = [1,2,3,[4,5,6]]
lst1 = lst
lst2 = copy.deepcopy(lst)
lst.append(7)
print(lst1,lst2) # [1, 2, 3, [4, 5, 6], 7] ----- [1, 2, 3, [4, 5, 6]]
lst[3].append(888)
print(lst1,lst2) # [1, 2, 3, [4, 5, 6, 888], 7] ----- [1, 2, 3, [4, 5, 6]]

  

4、tuple

tuple.index()                            # 获取元素的索引(可指定范围)
tuple.count() # 获取元素的个数

  

5、dict

# 增
dict = {}
lst = ["name","age","happy"]
dict.fromkeys(lst,None) # 创建默认值字典

# 删
dict.pop("key","返回的默认值") # 不设置默认值,没有找到会报错
dict.popitem() # 删除最后一组键值对
dict.clear() # 清空

# 改
dict.updata() # 批量更新

# 查
dict.get("key","返回的默认值") # 不设置默认值,没有找返回None
dict.keys() # 获取所有 key ,返回可迭代对象,非列表
dict.values() # 获取所有 value,返回可迭代对象,非列表
dict.items() # 获取所有键值对 ,返回可迭代对象,非元组

  

6、set

6.1 set的操作

day8 python 列表,元组,集合,字典的操作及方法 和 深浅拷贝

s1 = {0,1,3,5,7,9}
s2 = {0,2,4,5,6,8}
# 交集 ===== &
s1.intersection(s2) # s1 & s2 ------> {0, 5}

# 查集 ===== -
s1.difference(s2) # s1 - s2 ------> {1, 3, 9, 7}
s2.difference(s1) # s2 - s1 ------> {8, 2, 4, 6}

# 并集 ===== |
s1.union(s2) # s2 | s1 ------> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

# 对称差集
s1.symmetric_difference(S2) # s2 ^ s1 ------> {1, 2, 3, 4, 6, 7, 8, 9}

  day8 python 列表,元组,集合,字典的操作及方法 和 深浅拷贝

s1 = {1,2,3}
s2 = {1,2,3,4,5,6}
# 判断子集
s1.issubset(s2) # s1 < s2 ------> True

# 判断父级
s1.issuperset(s2) # s1 > s2 ------> False

# 判断是否无相交
s1.isdisjoint(s2) # False

  

6.2 set 的方法

# 增
set.add() # 单个增加
set.updata() # 迭代增加

# 删
set.pop() # 随机删除
set.remove() # 指定元素删除,不存在会抱错
set.discard() # 指定元素删除,不存在不报错
set.clear() # 清空

  

6.3 冰冻集合

# 强制转换成frozenset对象,只能做交差并补操作
s1 = [0,1,3,5,7,9]
res = frozenset(s1)