【Finish】Python Day 7

# 昨日回顾
# 小数据池:
# int -5^256
# str 带有特殊字符 或者 *数字>20,则开辟新内存地址
#
# ASCII : 8位 1个字节 表示一个字符
# Unicode:32位,4个字节 表示一个字符
# UTF-8:英文 8位1个字节;中文 24位3个字节
# GBK:英文 8位1个字节;中文 16位2个字节

# 今日
# 1、基础数据类型汇总补充

# str
# s = ' '
# print(s.isspace()) # True判断字符串中带空格,则返回True,否则 则返回 False

# int

# list
lst = [11,22,33,44,55]
# for i in lst:
# del lst[lst.index(i)]
#
# for i in range(len(lst)): # IndexError: list assignment index out of range
# del lst[i]

# dict !!!不能再字典循环的时候删除字典,可以新建一个字典复制
# 可以使用将带有k的key放到一个列表,新建循坏删除带有上述列表key中的值
dic = {'k1':'v1','k2':'v2','a3':'v3'}
# dic2 = {}
# for i in dic.keys():
# if 'k' not in i:
# dic2[i] = dic[i]
# print(i,dic[i])

# dic = dict.fromkeys([1,2,3],'春哥')
# print(dic) # {1: '春哥', 2: '春哥', 3: '春哥'} 将列表中每一个数据转换成字典的key,默认赋值

# 转换成bool:(),'',[],{},set()

# tupe 元祖:如果元祖里面不带逗号,改数据是什么类型就是什么类型,需要加逗号
# tu1 = ([1])
# tu2 = ([1],)
# print(type(tu1),type(tu2)) #<class 'list'> <class 'tuple'>

# 2、集合set
# # 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不可重复 {}
#
# # set1 = set({1,2,3}) # {1, 2, 3}
# # set1 = set({1,2,3,{1,2,3}}) # TypeError: unhashable type: 'set'
#
# set1 = {'alex','wusir','ritian','egon','barry'}
#
# #增:
# # set1.add('女神') # 增 无序 {'wusir', 'ritian', '女神', 'egon', 'alex', 'barry'}
# # set1.update('abc') # {'ritian', 'a', 'wusir', 'barry', 'alex', 'egon', 'c', 'b'}
#
# # 删除:
# # set1.pop() # 随机删除,返回随机 {'barry', 'egon', 'wusir', 'alex'}
# # set1.remove('alex') # 按照元素删除,返回无序 {'ritian', 'barry', 'wusir', 'egon'}删除不存在的元素则报错
# # set1.clear() # 清空集合 set()
# # del set1 # 删除整个集合 NameError: name 'set1' is not defined
#
# # 改:不可变数据类型 无法修改
#
# # 查:
# # for i in set1:
# # print(i) # 随机输出
#
# set11 = {1,2,3,4,5}
# set22 = {6,7,8,9,5}
# # print(set11 & set22) # {5} 交集
# # print(set11.intersection(set22))# {5} 交集
#
# # print(set11 | set22) # {1, 2, 3, 4, 5, 6, 7, 8, 9} 并集
# # print(set11.union(set22)) # {1, 2, 3, 4, 5, 6, 7, 8, 9} 并集
#
# # print(set11 ^ set22) # {1, 2, 3, 4, 6, 7, 8, 9} 反交集
# # print(set11.symmetric_difference(set22)) # {1, 2, 3, 4, 6, 7, 8, 9} 反交集
#
# # print(set11 - set22) # {1, 2, 3, 4} 只有set11独有的
# # print(set11.difference(set22)) # {1, 2, 3, 4} 只有set11独有的
#
# set33 = {1,2,3}
# set44 = {1,2,3,4,5,6}
# # print(set33 < set44) # 判断set44是set33的子集 True
# # print(set33.issubset(set44))# 判断set44是set33的子集 True
#
# # 去重
# li = [1,2,33,33,2,1,4,5,6,6]
# set66 = set(li) # {1, 2, 33, 4, 5, 6} 把列表转换成set集合,集合有去重功能
# li = list(set66)
# print(li) # [1, 2, 33, 4, 5, 6]
#
# # set是可变数据类型,下面将set变为不可变数据类型
# s = frozenset('barry')
# print(s,type(s)) # frozenset({'y', 'r', 'b', 'a'}) <class 'frozenset'>
# for i in s:
# print(i) # 可查询,不能增加/删除/更改,只读

# 3、深浅copy
# copy
# l1 = [1,2,3]
# l2 = l1.copy()
# print(l1,l2) # [1, 2, 3] [1, 2, 3]
# print(id(l1),id(l2)) # 4363156168 4363156552
# l2.append('a')
# print(l1,l2) #[1, 2, 3] [1, 2, 3, 'a']

# l1 = [1,2,3]
# l2 = l1.copy()
# l1.append('a')
# print(l1,l2) # [1, 2, 3, 'a'] [1, 2, 3]


# l1 = [1,2,[4,5,6],3]
# l2 = l1.copy()
# print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 4363156552
# print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363154760
# l1.append('0')
# print(l1,id(l1)) # [1, 2, [4, 5, 6], 3, '0'] 4363156552
# print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363154760

# l1 = [1,2,[4,5,6],3]
# l2 = l1.copy()
# l1[2].append('a')
# print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363156552
# print(l2,id(l2)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760

# l1 = [1,2,[4,5,6],3]
# l2 = l1.copy()
# l2[2].append('a')
# print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363156552
# print(l2,id(l2)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760

# 总结:浅拷贝不管多么复杂的数据结构、浅拷贝都只会copy一层。

import copy
# l1 = [1,2,[4,5,6],3]
# l2 = copy.deepcopy(l1)
# print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 4363154760
# print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363156616
# l1[2].append('a')
# print(l1,id(l1)) # [1, 2, [4, 5, 6, 'a'], 3] 4363154760
# print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 4363156616

# l1 = [1,[1],2,3,4]
# l2 = l1[:]
# l1[1].append('2')
# print(l1,id(l1)) # [1, [1, '2'], 2, 3, 4] 4363154760
# print(l2,id(l2)) # [1, [1, '2'], 2, 3, 4] 4363156616
# print(l1[1] is l2[1]) # True


# 总结:深拷贝不管数据结构多么复杂,相互都不影响







猜你喜欢

转载自www.cnblogs.com/wonderful0714/p/9338296.html