python 5.7
一、基础数据类型补充
#数据类型的补充
#元祖tuple,如果里面还有一个元素且没有逗号,该数据类型为唯一元素的类型。
# tu = ([1,2,3]) #tu里面只有一个列表,没有逗号。数据类型为list.
# print(tu,type(tu))
# tu = ([1,2,3],) #里面虽然只有一个元素,但是后面有逗号。还是元祖类型。
# print(tu,type(tu))
#for 循环中,最好不要循环删除列表或字典中的元素,改变了列表和字典的大小。会出错。
#解决办法,列表,反向循环,这样不会改变列表的大小。
# li = ['liujj','xiaol','jisp'] # for i in range(len(li)-1,-1,-1): #range顾头不顾腚,所以尾为0-1=-1,len()比索引多1,所以len()-1,当len()作为尾的时候,
# if i % 2 == 1: #如果从0开始循环,len()不需要-1。
# li.pop(i)
# print(li)
#解决办法,字典,先把要删除的键放到一个列表中,再循环列表然后删除字典。
# dic = {'k1':'v1','k2':'v2','k3':'v3','name':'alex'}
# lis = [] # for i in dic:
# if 'k' in i:
# lis.append(i)
# for m in lis:
# dic.pop(m)
# print(dic)
#tuple-->list list(tu) tuple(list)
#dic -->list list(dic):所有的键---> list(dic.keys())
# 所有的值--->list(dic.values())
# 所有的键值对(列表中是一对一对的元祖)--->list(dic.items())
#set-->list list(set())
#dict.fromkeys(拆分之前的元素,每个元素对应的唯一的值)
# dic = dict.fromkeys('abc',66)
# print(dic)
#False: 0 , '' , [] , {} , ()
二、 集合
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#集合的增 #1.add # set = {'liujj','jiasp','jiaxl'} # set.add('cat') # print(set) #2.update 先拆分后添加 # set.update('abcde') # print(set) #集合的删 # 1.remove 按照元素删除 # set.remove('jiaxl') # print(set) #2.pop 随机删除,返回值为删除的元素。 # print(set.pop()) # print(set) #3.del #4.clear 清空列表:set() #集合的查 #只有for一种
三、集合的关系
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#集合的交集:& intersection #集合的并集:| union #集合的差集:- difference #集合的反交集:^ symmetric_difference #集合的子集: < 返回值为真或假。 issubset #集合的超集: > issuperset
四、深浅copy
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
# 深浅copy #1.赋值。一个变另一个也跟着变,必须要先赋值,小数据池的话本身就是同一内存地址所以不需要再赋值。 # li = [1 , 2 , 3] # li2 = li # li.append(99) #set2跟着set1变化 # print(li,li2) #2.浅copy。 第一层是独立的,第二层及以上是同一个内存地址,是跟着变化的。 # li1 = [1 , 2 , 3 , ['liujj','jiasp'] ] # li2 = li1.copy() # li1[3].append('jiaxl') #第二层增加,所以li2中的第二层也跟着增加 # print(li1,li2) # li1.append(4) # print(li1,li2) #3.深copy,import copy / copy.deepcopy(表名). #不管第几层都是完全独立的。 # import copy # li2 = copy.deepcopy(li1) # li1.append(77) # print(li1,li2) # li1[3].append('xial') # print(li1,li2) #4.列表的切片也是属于----->浅copy. # li2 = li1[:] # li1.append(55) # print(li1,li2) # li1[3].append('lang') # print(li1,li2)