python中set(集合),深浅拷贝以及一些补充知识点

时间:2023-03-10 04:18:16
python中set(集合),深浅拷贝以及一些补充知识点

1.set集合

  特点:无序,不重复,元素必须可哈希(不可变)

  作用:去重复

  本身是可变的数据类型。有增删改查操作。{集合的增删改查操作应用较少,这里不做详细介绍了(这里的增有一个方法update注意这个是迭代添加)}

  frozenset()冻结的集合。不可变,可哈希。

 s = {"哈哈哈","嘿嘿嘿","呵呵呵"}
s1 = frozenset(s)
print(type(s1)) #<class 'frozenset'>

2.深浅copy

  1>赋值。没有创建新对象,公用同一个对象。

  2>浅copy。拷贝第一层内容,这第一层内容创建了新对象。

    方法:[:]或者copy()

  3.深copy。拷贝所有内容,包括内部的所有。

    方法:首先要引入copy模块

        import copy

        copy.deepcopy  

3.str中的join方法:

  str中的join方法,把列表转变成字符串。前面的str中的split(),是将字符串变成列表。

  join(可迭代对象)

4.列表和字典在循环的时候不能直接删除(字典在循环中是不能改变的),需要把删除的内容记录在新列表中,然后循环新列表,删除字典或列表。

 lst = ["紫云", "大云", "玉溪", "紫钻","a","b"]
lst1 = []
for el in lst:
lst1.append(el)
for el in lst1:
lst.remove(el)
print(lst) #[]

5.fromkeys()

  dict.fromkeys(key,value)

  1>直接用类名(dict)调用

  2>返回新字典,对原字典没有影响

  3>后面的value是多个key共享一个value     在这个方法中的key是一个可迭代对象

 a = ["哈哈","呵呵", "吼吼"]
ret = dict.fromkeys("abc", a)
a.append("嘻嘻")
print(ret)
#{'a': ['哈哈', '呵呵', '吼吼', '嘻嘻'], 'b': ['哈哈', '呵呵', '吼吼', '嘻嘻'], 'c': ['哈哈', '呵呵', '吼吼', '嘻嘻']}