博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python - 深浅拷贝
阅读量:4955 次
发布时间:2019-06-12

本文共 1745 字,大约阅读时间需要 5 分钟。

一.set集合

  set集合是python的一个基本数据类型. ⼀般不是很常用. set中的元素是不重复的.无序的.里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表示

  注意: set集合中的元素必须是可hash的, 但是set本⾝是不可hash得. set是可变的

1.使用set来去掉重复,且结果无序

lst = ["莉莉",'丽丽','李莉',"莉莉"]lst = list(set(lst))    #把lst转换成set,在转换成list    print(lst)                #结果为:['李莉', '莉莉', '丽丽']

2.使用set进行增删改查

  1、增

s = {
"jie", 'jie', 'lun'}s.add("zhou") # s.update(['liu']) #迭代添加# s.update(["玛丽莲","马里兰","马利兰"])print(s)

  2、删

s = {
"马尼拉","玛丽莲","马利兰"}item = s.pop() #随机删除一个print(item)s.remove("玛丽莲") #指定删除print(s)s.clear() #直接清空set()内容print(s)

  3、改

#set集合中的数据没有索引,没有办法定位,所以不能直接修改#可以采用先删除,后添加的方式进行修改s = {
"马尼拉","玛丽莲","马利兰"}s.remove("马尼拉")s.add("马格啦")print(s)

  4、查

#set集合是一个可迭代,可以进行for循环for ss in s:    print(ss)

3.常用操作

# 交集s1 = {
"莉莉",'丽丽','李莉'}s2 = {
"安安","丽丽",'uu'}print(s1 & s2)print(s1.intersection(s2))
#并集print(s1 | s2)print(s1.union(s2))
#差集print(s1 - s2)print(s1.difference(s2))
#反交集print(s1 ^ s2)print(s1.symmetric_difference(s2))
#子集print(s1 < s2) #set1是set2的子集吗?print(s1.issubset(s2))
#超集print(s1 > s2)   #set1是set2的超集吗?print(s1.issuperset(s2))
# frozenset是不可变的. 也就是一个可哈希的数据类型 s = frozenset(["莉莉",'丽丽','李莉'])dic = {s:123}print(dic)

二.深浅拷贝

1.浅拷贝. 只会拷贝第一层. 第二层的内容不会拷贝. 所以被称为浅拷贝

#浅拷贝lst1 = ["南山南","贝加尔湖畔","南方姑娘","成都"]# lst2 = lst1[:]    # 也是浅拷贝lst2 = lst1.copy()      #lst2 和 lst1 不是一个对象了lst1.append("告白气球")print(lst1,lst2)

2.深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产⽣⼀个改变另一个跟着改变的问题

# 深拷贝import copylst1 = ["南山南","贝加尔湖畔",["南方姑娘","成都"]]lst2 = copy.deepcopy(lst1)     # 把lst1扔进去进行深拷贝,包括内部的所有内容进行拷贝lst2[2].append("告白气球")print(lst1,lst2)

三.基础数据类型补充

#jion将列表变成字符串li = ["李李嘉诚", "麻花藤", "⻩黄海海峰", "刘嘉玲"]s = "_".join(li)print(s)

 

转载于:https://www.cnblogs.com/jiujiang/p/11106461.html

你可能感兴趣的文章
Git 笔记 - section 1
查看>>
JZOJ 4.1 B组 俄罗斯方块
查看>>
HDU6409 没有兄弟的舞会
查看>>
2018 Multi-University Training Contest 10 - TeaTree
查看>>
HDU6205 card card card
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6198 number number number
查看>>
HDU6438 Buy and Resell
查看>>
HDU6446 Tree and Permutation
查看>>
HDU6201 transaction transaction transaction
查看>>
HDU6203 ping ping ping
查看>>
前端小笔记
查看>>
《人人都是产品经理》书籍目录
查看>>
如何在git bash中运行mysql
查看>>
OO第三阶段总结
查看>>
构建之法阅读笔记02
查看>>
初学差分约束
查看>>
HEVC编码学习(一)HM配置
查看>>
通过Spark SQL关联查询两个HDFS上的文件操作
查看>>
DataTable和 DataRow的 区别与联系
查看>>