标签:
基本类型的补充
str --> 一次性创建的,不能被修改,强制修改就会在创建一个而之前的也会在
list -->允许重复的集合 修改 记录 链表,下一个元素的位置,上一个元素的位置
tuplt --> 允许重复的集合 修改
dict---> 允许重复的集合 修改
set -->不允许重复的集合,修改 也是不允许重复的列表
set 集合
创建方式有两种 s = set() s = {,,,,}
s1 = {11,44,55,66,77} b1 = {11,22,33,44,55,789} s1.add(88) #添加某一个元素 不能直接打印 print(s1) 结果 {66, 11, 44, 77, 55, 88} s1.clear() #清空列表 不能清除一个 print(s1) 结果 set() i = s1.difference (b1) #找s1中存在 b1中不存在的元素,并赋值给i print(i) 结果‘ {66, 77} s1.difference_update(b1) #找某一个存在,某一个不存在元素更新自己的 print(s1) 结果 {66, 77} i = s1.discard(11) print(s1) #移除指定元素 没有的也不存在保错 结果 {66, 44, 77, 55} i = s1.remove(11) #移除指定元素,不存在的报错 print(b1) 结果 {33, 11, 44, 789, 22, 55} i = s1.intersection(b1) #返回两个集合的交集作为一套新的 print(s1) 结果 {66, 11, 44, 77, 55} i = s1.isdisjoint(b1) #判断有没有交集,有交集就是False,没有交集就是Ture print(i) 结果 False i = s1.issubset(b1) #判断是不是子序列 print(i) 结果 False i = s1.issuperset(b1) #判断是不是父子列 print(i) 结果 False i = s1.pop() #删除某一个元素 因为是无序的所以是随机 print(i) 结果 66 i = s1.symmetric_difference(b1) print(i) #对称交集并更新到s1中 结果 {33, 789, 22, 77} i = s1.union(b1) print(i) #并集 合并到一个新的集合 结果 {33, 11, 44, 77, 789, 22, 55} i = s1.update("nihao") print(i) 更新新元素 结果 {321, 66, 11, 44, 77, 55, 123}
三目运算 三元运算
name= 值1 if 1 == 1 sles 值2 如果条件成立就把值1赋给变量 如果条件不成立就把值2 赋给变量
q = ‘erzi‘ if 1==1 else ‘sunzi‘ print(q)
q = ‘xin‘ if 1 !=1 else ‘pi‘
D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py erzi pi Process finished with exit code 0
深浅拷贝。 深浅拷贝有copy模块。
导入模块:import copy
浅拷贝:copy.copy
深拷贝:deepcopy
字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。
所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字。
import copy 首先要先导入模块 n1 = 133 n2 = n1 赋值 print(id(n2)) n2 = copy.copy(n1) 浅拷贝 print(id(n2)) n3 = copy.deepcopy(n1) 深拷贝 print(id(n2))
1赋值,只是创建一个变量,该变量指向原来内存地址,如:
n1 = {"k1":"wu", "k2": 123, "k3": ["alex", 456]}
n2 = n1
print(id(n2))
D:\python3.5\python.exe D:/untitled/q1.py
7699752 7699752
Process finished with exit code 0
对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。
浅拷贝
n1 = {"k1":"wu", "k2": 123, "k3": ["alex", 456]}
n2 = n1
n3 = copy.copy(n1)
print(id(n1),id(n2))
结果
15367464 15367464
深拷贝,,,
n1 = (‘ewq‘,123) n2 = copy.deepcopy(n1) print(id(n1),id(n2)) D:\python3.5\python.exe D:/untitled/q1.py 15470544 15470544 Process finished with exit code 0
标签:
原文地址:http://www.cnblogs.com/guokaixin/p/5469633.html