day 07 数据类型,集合,深浅copy

时间:2023-03-10 02:22:27
day 07 数据类型,集合,深浅copy

1.day 06 内容回顾

 小数据池
int :-5-256
str:特殊字符 ,*20 ascii:8位 1字节 表示一个字符
unicode:32位 4个字节 , 表示一个字符
字节表示8位表示一个字节,字符表示组成的最小元素
utf-8 1个英文字母 8位 1个字节
欧洲 16位 两个字节 表示一个字符
亚洲 24位 三个字节 表示一个字符 gbk 1个英文字母 8位,1个字节
亚洲 16 位 两个字节表示一个字符 s = 'alex'
b = s.encode('utf-8')
print(b)#b.alex

2.数据类型汇总

 '''
str int
'''
# str
# s = 'hah '
# print(s.isspace())#isspace至少有一个空格就是True,没有就是False
#int '''
list:
'''
# lis = [11,22,33,44,55]
# for i in range(len(lis)):
# print(i)
# print(lis)
# del lis[i] #dic = {'k1':'v1','k2':'v2','a3':'v3'}
dic1={}
# for i in dic:
# if 'k' not in i:
# dic1.setdefault(i,dic[i])
# dic=dic1
# print(dic) # l = []
# for i in dic:
# if 'k' in i:
# l.append(i)
# for i in l :
# del dic[i]
# print(dic) #转换成bool值
#0 '' [] () set() #元祖 如果元祖里面只有一个元素且不加,那此元素是什么类型,就是什么类型
tu1 = ([1])
tu2 = ([1],)
print(tu1,type(tu1))
print(tu2,type(tu2))

3.集合的操作

 '''
集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无需,不重复
{}
'''
# #set1 = set({1,2,3})
# set2 = {1,2,3.[2,3],{'name':'alex'}}#报错
# #print(set1)
# print(set2) #增:add
set1 = {'alex','wusir','ritian','egon','barry',}
# set1.add('女神')
# print(set1)
#update无需添加
# set1.update('abc')
# print(set1)
#删
# set1.pop()#随机删除
# print(set1.pop())#有返回值
# print(set1)
# #remove按元素删除
# set1.remove('alex')
# print(set1) #清空
# set1.clear()
# print(set1) #查
# for i in set1:
# print(i) #求交集
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
# set3 = set1 & set2
# print(set3) # {4, 5}
# print(set1.intersection(set2)) # {4, 5} #求并集
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
# print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7,8}
# print(set2.union(set1)) # {1, 2, 3, 4, 5, 6, 7} #求反交集
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
# print(set1 ^ set2) # {1, 2, 3, 6, 7, 8}
# print(set1.symmetric_difference(set2)) # {1, 2, 3, 6, 7, 8} #set1独有的
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
# print(set1 - set2) # {1, 2, 3}
# #set1独有的
# print(set1.difference(set2)) # {1, 2, 3} # set1 = {1,2,3,}
# set2 = {1,2,3,4,5,6}
# #子集
# print(set1 < set2)
# print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。
# #超集
# print(set2 > set1)
# print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。 #去重
# li = [1,2,33,33,2,1,4,5,6,6]
# set1 = set(li)
# # print(set1)
# li = list(set1)
# print(li) # s1 = {1,2,3}
# print(s1,type(s1)) # s = frozenset('barry')
# print(s,type(s))
# for i in s:
# print(i)

4.深浅copy

 #赋值没有创建新对象,多个变量共享一个对象’
#浅拷贝,会创建对象,新的对象中里面的内存不会被拷贝‘
#深拷贝,创建一个一模一样的完全新的对象,这个对象延伸出来的内容也会跟着复制一份
# 赋值运算
# l1 = [1,2,3]
# l2 = l1
# l1.append('a')
# print(l1,l2) #copy
# l1 = [1,2,3]
# l2 = l1.copy()
# print(l1,l2)
# print(id(l1),id(l2))
# l2.append('a')
# print(l1,l2) # l1 = [1,2,[4,5,6],3]
# l2 = l1.copy()
#
# print(l1,id(l1))
# print(l2,id(l2))
# l1.append('a')
# print(l1,l2)
# l1[2].append('a')
# print(l1,l2)
# print(id(l1[2]))
# print(id(l2[2])) # import copy
# l1 = [1,2,[4,5,6],3]
# l2 = copy.deepcopy(l1)
# print(l1,id(l1))
# print(l2,id(l2))
# l1[2].append('a')
# print(l1,l2)
#
# l1 = [1,[1],2,3,4]
# l2 = l1[:]
# l1[1].append('a')
# # l2 的结果是什么?
# print(l1,id(l1))
# print(l2,id(l2))
# print(l1[1] is l2[1]) # li = ['alex','taibai','wusir','egon']
# for i in li:
# print(li.index(i),i)
#
# for index,i in enumerate(li,1):
# print(index,i)