知识点补充 set 深浅拷贝
Posted sypx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识点补充 set 深浅拷贝相关的知识,希望对你有一定的参考价值。
一 对前面知识点的补充
1.str中的join()方法是将列表转换成字符串
lst = ["韩雪","赵丽颖","黄渤","李连杰"] print("_".join(lst)) # 韩雪_赵丽颖_黄渤_李连杰
将每个元素用_进行拼接
s = "马化腾" print("-".join(s)) # 马-化-腾
2.把字符串转换成列表 用split()
ss = "高华新**刘清扬**崔园樟" print(ss.split("**"))
3.列表和字典在循环的时候不能直接删除,需要把删除的内容记录在一个新的列表中,然后再循环新列表,删除列表或字典,字典在循环的时候不允许改变大小
lst = ["1","2","3","4"] new_lst = [] for el in lst: new_lst.append(el) for e in new_lst: lst.remove(e) print(lst) #[] print(new_lst) #[‘1‘, ‘2‘, ‘3‘, ‘4‘]
删除姓张的人
lst = ["张艺","张二","张三","张四","王五"] lst1 = [] for el in lst: if el.startswith("张"): lst1.append(el) for e in lst1: lst.remove(e) print(lst) print(lst1)
4.fromkeys() 返回新字典和原来的字典没关系 后面的value,是多个key共享一个value
dic = {"apple":"苹果","banana":"香蕉"} ret = dic.fromkeys("orange","橘子") print(ret) # {‘o‘: ‘橘子‘, ‘r‘: ‘橘子‘, ‘a‘: ‘橘子‘, ‘n‘: ‘橘子‘, ‘g‘: ‘橘子‘, ‘e‘: ‘橘子‘}
直接用字典去访问fromkeys不会对字典产生影响
dic = {"apple":"苹果","banana":"香蕉"} ret = dict.fromkeys("abc",["你是","坏蛋"]) print(ret)
fromkeys直接使用类名去使用
二 set集合
特点:不重复,无序,元素必须是可哈希(不可变)
set就是字典类型的数据,不保存value,只保存key,set也用{}来表示 set本身是不可哈希的,set是可变的有增删改查操作
作用:去重复
frozenset() 可冻结的集合 可哈希的 是不可变的
三 深浅拷贝
1.赋值操作:没有创建新对象,两个指向的是同一地址
2.浅拷贝:只拷贝第一层内容. [:] copy() 创建了新对象
3. 深拷贝:把这个对象的内容全部拷贝一份,引入copy模块,deepcopy()
以上是关于知识点补充 set 深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章