知识点补充 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()

原文地址:https://www.cnblogs.com/sypx/p/9415370.html