一、什么是数据类型
1、int:123456....用于计算
2、bool:True、False。用户判断。‘
3、str:存储少量数据,进行操作
4、list:列表。百万级、千万级。[]
5、元祖:只读列表。()
6、字典:键值对组成。{}
7、集合:
二、int(数字)数据类型
1、.bit_length()
转换为二进制最少的位数
i = 5
k = 9
print(i.bit_length())
print(k.bit_length())
输出
2
3
三、bool值数据类型
表示True、False。
1、int类型和bool值转换
0为False
非0为True
2、bool值和int类型转换
True = 1
False = 0
应用:写while语句时候需要用到while True。运行的时候True需要转换成1去运行。如果直接写while 1:运行速度更快,效率更高。
3、str和bool转换
非空字符串为True
空字符串为Flase
四、str字符串数据类型
1、字符串的索引与切片
1.1.索引:既字符的占位,不影响原本值。从零开始。负数为从后开始从-1开始。
s = 'qweerwefjafajdshfkjad'
s1 = s[0]
print(s1)
q
1.2.切片:顾头不顾腚原则
s = 'qweerwefjafajdshfkjad'
s1 = s[0:3] #qwe
s2 = s[0:] #从头到尾
s3 = s[0:5:2] #间隔取[首:尾:补偿]
print(s1)
print(s2)
print(s3)
qwe
qweerwefjafajdshfkjad
qer
五、列表(list)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
li = [ 'cxm','[1,2,3,4]','yly','cml','cyy' ]
l1 = li[0]
l2 = li[1]
print(l1)
print(l2)
cxm
[1,2,3,4]
1、增 append insert extend
①append
li = [ 'cxm','[1,2,3,4]','yly','cml','cyy' ]
li.append('qwe')
print(li)
['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy', 'qwe']
②insert
li = [ 'cxm','[1,2,3,4]','yly','cml','cyy' ]
li.insert(2,'haha')
print(li)
['cxm', '[1,2,3,4]', 'haha', 'yly', 'cml', 'cyy']
③extend
li = [ 'cxm','[1,2,3,4]','yly','cml','cyy' ]
li.extend(['11','2','3'])
print(li)
['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy', '11', '2', '3']
2、删 pop remove clean del
①pop安装索引删除
li = ['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy']
li.pop(1)
name = li.pop()
print(name)
print(li)
cyy
['cxm', 'yly', 'cml']
②remove 按照元素删除
li = ['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy']
li.remove('yly')
print(li)
['cxm', '[1,2,3,4]', 'cml', 'cyy']
③clean 清空
li = ['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy']
li.clear()
print(li)
[]
④del 直接清空变量或者切片删除
li = ['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy']
del li[0:2]
print(li)
['yly', 'cml', 'cyy']
3、改
①根据索引改
li = ['cxm', '[1,2,3,4]', 'yly', 'cml', 'cyy']
li[0] = 'qqqqq'
print(li)
['qqqqq', '[1,2,3,4]', 'yly', 'cml', 'cyy']
②根据切片改
li = ['cxm','[1,2,3,4]', 'yly', 'cml', 'cyy']
li[0:2] = ['qqq','www']
print(li)
['qqq', 'www', 'yly', 'cml', 'cyy']
4、查
①
li = ['cxm','[1,2,3,4]', 'yly', 'cml', 'cyy']
print(li[0:2])
print(li[3])
['cxm', '[1,2,3,4]']
cml
②查每个元素
for i in li:
print(i)
5、公共方法
①len 列表元素
li = ['cxm','[1,2,3,4]', 'yly', 'cml', 'cyy']
l = len(li)
print(l)
5
②count 出现次数
li = ['cxm','[1,2,3,4]', 'yly', 'cml', 'cyy','cxm']
a = li.count('cxm')
print(a)
2
②inde索引
li = ['cxm','[1,2,3,4]', 'yly', 'cml', 'cyy','cxm']
a = li.index('yly')
print(a)
2
③sort 排序
·(正)
li = [1,5,8,3,6,9,2]
li.sort()
print(li)
[1, 2, 3, 5, 6, 8, 9]
·(倒)
li = [1,5,8,3,6,9,2]
li.sort(reverse=True)
print(li)
[9, 8, 6, 5, 3, 2, 1]
④reverse (列表倒叙显示)
li = [1,5,8,3,6,9,2]
li.reverse()
print(li)
[2, 9, 6, 3, 8, 5, 1]
六、元祖
元祖为只读列表,不可以修改,但是元祖里的列表可以修改。
(1,2,3,['a','b'],4,5)
七、字典(dict)
可变数据类型:元祖、bool值、数字(int)、字符串(str)【可哈希】
可变数据类型:列表、字典、集合(set)【不可哈希】
映射类型:key-value
key:必须不可变数据类型
value:任意数据类型
优点:二分法查找。查询速度快。存储大量的关系型数据。
1、增
①有覆盖无增加
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic1 ['higjh'] = 185 #没有键值对增加
print(dic1)
dic1 ['age'] = 16 #有键值对覆盖
print(dic1)
{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v', 'higjh': 185}
{'age': 16, 'name': 'jin', 'sex': 'male', 'k': 'v', 'higjh': 185}
②无增加,有不动
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic1.setdefault('weight',123)
print(dic1)
dic1.setdefault('name','cxm')
print(dic1)
{'age': 16, 'name': 'jin', 'sex': 'male', 'k': 'v', 'higjh': 185, 'weight': 123}
{'age': 16, 'name': 'jin', 'sex': 'male', 'k': 'v', 'higjh': 185, 'weight': 123}
2、删
①pop 有返回值(可以返回值,不会报错)
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic1.pop('age',None))
print(dic1.pop('123123',None))
print(dic1)
18
None
{'name': 'jin', 'sex': 'male', 'k': 'v'}
②popitem 随机删除
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic1.popitem())
print(dic1)
('k', 'v')
{'age': 18, 'name': 'jin', 'sex': 'male'}
③clear清空字典
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic1.clear())
print(dic1)
None
{}
④删除字典del
3、改
①
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic1 ['age'] = 16
print(dic1)
{'age': 16, 'name': 'jin', 'sex': 'male', 'k': 'v'}
②update 有覆盖,没有添加
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
dic2 = {'age':11,'weight':'cxm'}
dic2.update(dic1)
print(dic1)
print(dic2)
{'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
{'age': 18, 'weight': 'cxm', 'name': 'jin', 'sex': 'male', 'k': 'v'}
4、查
1、
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic1.keys())
print(dic1.values())
print(dic1.items())
for i in dic1:
print(i)
for i in dic1.values():
print(i)
for i in dic1.items():
print(i)
dict_keys(['age', 'name', 'sex', 'k'])
dict_values([18, 'jin', 'male', 'v'])
dict_items([('age', 18), ('name', 'jin'), ('sex', 'male'), ('k', 'v')])
age
name
sex
k
18
jin
male
v
('age', 18)
('name', 'jin')
('sex', 'male')
('k', 'v')
2、get
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
print(dic1['name'])
print(dic1.get('name1','没有这个键'))
jin
没有这个键