码迷,mamicode.com
首页 > 编程语言 > 详细

python - 深浅拷贝

时间:2019-06-29 14:28:20      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:清空   表示   可变   差集   nio   补充   remove   pytho   ict   

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

三.基础数据类型补充

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

 

python - 深浅拷贝

标签:清空   表示   可变   差集   nio   补充   remove   pytho   ict   

原文地址:https://www.cnblogs.com/jiujiang/p/11106461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!