基本的数据类型
一、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,tuple
li = [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、特有方法
#元组里面添加内容
#tuple
t = (11,22,["alex",{"k1":"v1"}])
t[2][1]['k2'] = 123
print(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)
#方法2
dic['k2'] = 123
print(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,默认值为alex
dic = {'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,里面的不同序列,形成一个新集合ret
print(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}