一、昨日内容回顾
小数据池:
int 范围:-5~256
str 特殊字符,乘以数字20
ascii : 8位 1字节 表示 1字符
unicode: 32位 4字节 表示 1字符 (python3中的内部编码方式)
utf—8 1个英文 8位 1个字节 (储存或传输大字符串)
欧洲 16位 两个字节 表示一个字符
亚洲 24位 三个字节 表示一个字符
字符:能看到的最小单位
gbk 1个英文 8位 1个字节
亚洲 16位 两个字节 表示一个字符
s = 'alex'
b = s.encode(utf-8)
print(b) = b'alex'
二、基础数据类型汇总
'''
list
'''
'''lis = [11,22,33,44,55]
for i in range(len(lis)):
del lis[i]
'删除一个元素,剩余元素的索引自动往前进一位补上'
'''
#例:删除带k的元素
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)
#列表和字典里面的东西不要轻易删除,会很麻烦
#元祖 如果元祖里面只有一个元素且不加,那次元素是什么类型,就是什么类型
面试题
tu1 = (1)
tu2 = (1,)
print(tu1,type(tu1))
print(tu2,type(tu2))
三、集合
'''
集合,可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
{}
'''
#set1 = set({1,2,3})
#print(set1)
#set1 = {'alex','wusir','ritian','egon','barry'}
#add
#set1.add('女神')
#print(set1)
#update
#set1.update('abc')
#print(set1)
#删除
#set1.pop() #随机删除 有返回值
#print(set1)
#set.remove('alex') #按元素删
#print(set1)
#set1.clear() #清空 结果:set()空集合
#print(set1)
#del set1 #删除整个集合
#查
#for i in set1:
# print(i)
#可以求交集 set3 = set1 & set2
#求并集 | 或者 union
#反交集 ^
#差集 结果为set1独有的 >:超集 <:子集
#面试题 去除相统元素
li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
print(set1)
li = list(set1)
print(li)
#将set强转成不可变数据类型 可以循环
s = frozenset('berry')
print(s,type(s));
for i in s:
print(i)
四、深浅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)