基本的数据类型
一、int,整形
a、创建方式
n1 = 123
n2 = int (123)
b、int内部优化
默认-5~257的数共用一份地址
===》 id(对象内存地址) = id(对象或变量名)
c、长度限制
32 -2**31~2**31-1
64 -2**63~2**63-1
在py3里面没有限制
二、str,字符串
a、创建方式
s1 = “alex”
s1 = str(“alex”)
b、特有功能
sl = "alex"
1、两端去空格:s1.strip
2、以。。。开头:s1.startswith()
3、找子序列“12”,“h”:s1.find()
4、将字符串中的某子序列替换成指定的值:s1.replace()
5、变大写:s1.upper()
6、是。。。吗:s1.isalphe()
7、join将什么以什么的形式连接起来:
li = ["alex",'sb']
l1 = "_".join(li)
l1对应的值 alex_sb
c、公共功能
索引:只能取一个元素
切片:取多个元素
len:计算元素长度
3.5里面是用字符来表示的
2.7里面是字节
for:
3.5里面是用字符来表示的
编码、for:
name = "李璐" for i in name: print(i) bytes_list = (bytes(i,encoding='utf-8')) print(bytes_list) for b in bytes_list: 1、3.5 for循环时候,循环的每一个元素是“字符” 2、字符==》字节: bytes_list = bytes("字符串",encoding="utf-8") utf-8 =》 3个字节 gbf =》 2个字节 print(bytes_list)#默认每一个字节都是16进制表示 for b in bytes_list: print(b)#默认没一个字节都是10进制表示 3、10进制的数字==》2进制 len id bin(加一个10进制的数字,变成2进制)
d、字节和字符串的相互转换:bytes和str
a = "李璐" #将字符串转换成字节 b1 = bytes(a,encoding="utf-8") print(b1) b2 = bytes(a,encoding='gbk') print(b2) #将字节转换成字符串 newal = str(b1,encoding="utf-8") print(newal) newa2 = str(b2,encoding="gbk") print(newa2)
三、list,列表
a、创建方式
li = [11,22,33,44]
li = list()
li = list([11,22,33,44])
b、转换
1、字符串转换成列表
s1 = "李璐"#for,字符==>可迭代li = list(s1)#for循环,将循环的每一个元素,当做列表的元素#["李""璐"]print(li)#结果:['李', '璐']
2、元组转换成列表
# 元组转换成列表t2 = ("acker", "seven", "laolanhai")l2 = list(t2)print(l2)#结果:['acker', 'seven', 'laolanhai']
3、字典转换成列表
# 字典转换成列表dic = { "k1": "alex", "k2": "seven"}l3 = list(dic.items())print(l3)#结果:[('k1', 'alex'), ('k2', 'seven')]# 字典由key和values组成键值对# 字符串,元组,字典==>列表
c、特有功能
li = [111,22,3]
1、追加:li.append()
2、清除:li.clear()
3、翻转,字节内部元素翻转:li.reverse()
4、向指定位置插入指定元素:li.insert(1,"x")
5、去空格:li.strip()
6、
#扩展字节,用另外一个可迭代的对象,扩充到字节内部# str,list,dic,tupleli = [111,22,3]s = "李璐"li.extend(s)print(li)#结果:[111, 22, 3, '李', '璐']
d、公共功能
li = ["alex","aric","sevev","123"]
索引:li[2]
切片:li[2:3]:::***原来是什么类型取的就是什么类型,列表切片取的也是列表***
for
len
del#删除
索引嵌套例子:取出第2个“123”:
li = ["alex", 123, {"k1": "v1", "k2": {"vv": (11, 22, 123), "ii": 456}}]
li[2] -->{"k1": "v1", "k2": {"vv": (11, 22, 123), "ii": 456}}
li[2]['k2'] -->{"vv": (11, 22, 123), "ii": 456}
li[2]['k2']["vv"] -->(11, 22, 123)
li[2]['k2']["vv"][2]-->123
四、元组
a、创建和转换
t = (11,22,33)
t = tuple((11,22,33))
t = tuple([])#字符串,列表,字典
#元组转换成列表t2 = ("acker","seven","laolanhai")l2 = list(t2)print(l2)#结果:['acker', 'seven', 'laolanhai']
b、特有方法
#元组里面添加内容#tuplet = (11,22,["alex",{ "k1":"v1"}])t[2][1]['k2'] = 123print(t)#结果:(11, 22, ['alex', {'k1': 'v1', 'k2': 123}])t[2][1].update({ 'k3':123})print(t)#结果:(11, 22, ['alex', {'k1': 'v1', 'k2': 123, 'k3': 123}])
count
index
c、嵌套(获取元素)
t = (11, 22, ["alex", { "k1": "v1"}])l1 = t[2][1]["k1"]print(l1)#结果:v1
d、元组,特性:
儿子不能被修改
e、整理:
一般字符串,执行一个功能,生成一个新内容,原来内容不变list,tuple,dict,
执行一个功能,自身进行变化
五、字典
a、创建
a = {"k1":123}
a = dict()
#字典转换成列表dic = { "k1":"alex","k2":"seven"}l3 = list(dic.items())print(l3)#结果:[('k1', 'alex'), ('k2', 'seven')]#字典由key和values组成键值对#字符串,元组,字典==>列表
b、enumerate的运用
将列表转换成字典{key:10递加,value:列表里的元素}
li = [11, 22, 33]new_dict = dict(enumerate(li,10))#enumerate可以自动添加一列KEY,形成字典print(new_dict)#结果:{10: 11, 11: 22, 12: 33}
c、字典里面添加内容:
#字典里面加内容dic = { "k1":"v1"}#方法1# dic.update({'k2':123})# print(dic)#方法2dic['k2'] = 123print(dic)#结果:{'k1': 'v1', 'k2': 123}
#字典添加的补充简便方法d = { "k1":'v1'}# d.update({'k2':123})d['k2'] = 123#如果换成:d['k1'] = 123是可以把v1更新print(d)#结果:{'k1': 'v1', 'k2': 123}
d、fromkeys的运用
#如何让k1,k2,默认值为alexdic = { 'k1':123,'k2':456,'k4':111}n = dic.fromkeys(['k1','k2'],'alex')print(n)#结果:{'k1': 'alex', 'k2': 'alex'}
六、set
1、set是一个无序且不重复的集合
2、set运用的几个例子
1、
#set是一个无序且不重复的集合se = {11,22,33}#se = set{}默认创建空的集合方式print(se)se.add(44)#添加元素print(se)se.clear()#默认清楚集合内所有的元素print(se)
2、找2个集合的不同
#找2个集合的不同se = {11,22,33}be = {22,55}ae = se.difference(be)#找se中存在,be中不存在的集合print(ae)ae = be.difference(se)#找be中存在,se中不存在的集合,并将其赋值给新集合print(ae)
3、
se = {11,22,33}be = {22,55}ret = se.difference_update(be)#找se中存在,be中不存在的集合,更新自己print(se)print(ret) {33, 11} None
4、移除元素
se = {11, 22, 33}se.discard(11)#移除元素,不报错se.remove(11)#移除元素,报错print(se)
5、
se = {11, 22, 33}be = {22,95,"随便"}# #有交集是False,没交集是Ture# ret = se.isdisjoint(be)# print(ret)
6、
se = {11,22,33,44}be = {11,22}ret = se.issubset(be)#se是不是be的子序列print(ret)ret = se.issuperset(be)#se是不是be的父序列print(ret)
7、删除子序列
se = {11,22,33,44}be = {11,22}ret = se.pop()#移除掉子序列print(ret)print(se)
8、合并集合
se = {11,22,33,44}be = {11,22,77,55}ret = se.symmetric_difference(be)#合并se,be,里面的不同序列,形成一个新集合retprint(ret)#输出结果:{33, 44, 77, 55}se.symmetric_difference_update(be)#se和be里面的不同序列,更新成se,形成新的se集合print(se)#输出结果:{33, 44, 77, 55}
9、2个集合形成一个新的集合
se = {11,22,33,44}be = {11,22,77,55}ret = se.union(be)#将,se,be,合并成一个新集合print(ret)#输出结果:{33, 11, 44, 77, 22, 55}
10、添加
se = {11,22,33,44}be = {11,22,77,55}se.update(be)#将be里面的东西添加到se集合里面,be也可以是列表print(se)#输出结果:{33, 11, 44, 77, 22, 55}