Python数据类型
数据类型
一种编程语言所支持的数据类型决定了该编程语言所能保存的数据python
Python语言经常使用的内置数据类型
一、Number(数字)
二、序列类型
2.1 String(字符串)
2.2 List(列表)
2.3 Tuple(元组)
三、Set(集合)
四、Dictionary(字典)web
一、数字类型
Python中有3种不一样的数字类型:int(整型)、float(浮点型)、complex(复数类型)。编程
1.1 整型:包括正整数、0和负整数,不带小数点,没有大小限制。
不一样进制的整数表示:
没有前缀:十进制整数;
前缀0o:八进制整数;
前缀0x:十六进制整数。app
Boolean(布尔)类型:True(逻辑真)和False(逻辑假),Boolean类型是整型的子类型,在做为数字参与运算时,False自动转为0,True自动转为1。编程语言
1.2 浮点型:能够用来表示实数。
3.25e3:科学计数法表示数,3.25乘以10的3次幂。svg
1.3 复数类型:实部和虚部都是一个浮点数。
表示方法:a+bj或a+bJ;
生成复数时,也可使用complex函数:函数
complex([real[,imag]])
#real为实部值,image是虚部值,返回值为real+image*j
若是省略虚部imag的值,返回的复数为real+0j;若是实部和虚部值都省略,返回的复数为0j。ui
1.4 数值运算函数编码
函数及使用
说明
abs(x)
绝对值,x的绝对值
divmod(x,y)
商余,(x//y,x%y),同时输出商和余数,divmod(10, 3结果为(3,1)
pow(x, y[, z])
幂余,(x**y)%z,z能够省略
round(x[,d])
四舍五入,d是保留小数位数,默认值是0
max(x1, x2,…,xn)
最大值,返回x1,x2,…,xn中的最大值,n不限
min(x1, x2,…,xn)
最大值,返回x1,x2,…,xn中的最小值,n不限
二、序列类型
序列是具备前后关系的一组元素,序列是一维元素向量,元素类型能够不一样,元素间由序号引导,经过下标访问序列的特定元素。spa
序列操做符
操做符
说明
x in s
若是x是序列s的元素,返回True,不然返回False
x not in s
若是x是序列s的元素,返回False,不然返回True
s + t
链接两个序列s和t
s * n或n*s
将序列s复制n次
Python中序列:
正向递增序列:从0开始依次增加
反向递减序列:从-1开始依次减小
索引(s[i]):返回s中的第i个元素,i是序列的序号,支持从前向后索引和从后向前索引;
切片(s[i: j[: k]]):返回s中第i到j以k为步长的元素子序列。
序列操做函数
函数
说明
len(s)
返回序列s的长度
min(s)
返回序列s的最小元素,s中元素须要可比较
max(s)
返回序列s的最大元素,s中元素须要可比较
s.index(x)或s.index(x, i, j)
返回序列s从i开始到j位置中第一次出现元素x的位置
s.count(x)
返回序列s中出现x的总次数
2.一、字符串类型
Python语言中只有保存字符串的String类型,而没有用于保存单个字符的数据类型。
字符串类型的表示方法:字符串能够写在一对单引号(‘str’)中,也能够写在一对双引号(“str”)或者一对三引号(’’‘str’’’)中。
对于不包含你任何字符的字符串,如’’(一对单引号)或""(一对双引号),称为空字符串(空串)。
字符串操做符
操做符
说明
x + y
链接两个字符串x和y
n * x或x * n
复制n次字符串x
x in s
若是x是s的子串,返回True;不然,返回False
字符串处理函数
Python中标点符号,数字,英文字母或者汉字,长度都是一个字符。
函数
说明
len(x)
长度,返回字符串x的长度
str(x)
任意类型x所对应的字符串形式
hex(x) 或 oct(x)
整数x的十六进制或八进制小写形式字符串
chr(u)
u为Unicode编码,返回其对应的字符
ord(x)
x为字符,返回其对应的Unicode编码
字符串处理方法
处理方法
说明
str.lower() 或 str.upper
返回字符串的副本,所有字符小写/大写
str.split(sep=None)
返回一个列表,由str根据sep被分隔的部分组成
str.count(sub)
返回子串sub在str中出现的次数
str.replace(old, new)
返回字符串str副本,全部old子串被替换为new
str.center(width[,fillchar])
字符串str根据宽度width居中,fillchar可选,默认空格
str.strip(chars)
从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter)
在iter变量除最后元素外每一个元素后增长一个str ,主要用于字符串分隔等
字符串格式化:格式化是对字符串进行格式表达的方式
字符串格式化使用.format()方法:.format()。
!!! 槽:{}
转义符
转义字符
描述
\(在行尾时)
续行符
\\
反斜杠符号
\a
响铃
\b
退格
\e
转义
\000
空
\n
换行
\r
回车
\f
换页
索引:经过字符串下标得到字符串元素的方法。
>>>a='python'
>>>print(a[0])
p
>>>print(a[-1])
n
>>>
切片
str[m:n[:k]]
m:切片的头下标(默认0);
n:切片的尾下标(默认下标最大值);
k:切片的步长(能够是正数、负数(从右向左索引),默认1)
>>>str="hello my friend"
>>>print(str[1:4])
ell
>>>print(str[:-7])
hello friend
>>>print(str[5:])
my friend
>>>print(str[:])
hello my friend
>>>str="hello my friend"
>>>print(str[2:7:2])
lom
>>>print(str[2:7:1])
llo m
>>>
2.二、列表类型–最经常使用的序列类型
列表中能够包含多个元素,且元素类型能够不相同。每一个元素能够是任一数据类型,包括列表(即列表嵌套)及元组、集合、字典。
列表建立后,列表内的元素能够更改。
全部元素都写在一对方括号’[]‘中,每两个元素之间用逗号分隔。不包含任何元素的列表(’[]’),称为空列表。
列表类型操做函数
函数
说明
Ls[i] = x
替换列表Ls第i元素为x
Ls[i: j: k] = Lt
用列表Lt替换切片后所对应元素的子列表
del Ls[i]
删除列表s中第i元素
del Ls[i: j: k]
删除列表Ls中第i到j以k为步长的元素
Ls += Lt
更新列表Ls,将列表Lt元素增长到列表Ls中
Ls *= n
更新列表Ls,其元素重复n次
Ls.append(x)
在列表Ls最后增长一个元素x
Ls.clear()
删除列表Ls中全部元素
Ls.copy()
生成一个新列表,赋值Ls中全部元素
Ls.insert(i, x)
在列表Ls的第i位置增长元素x
Ls.pop(i)
将列表Ls中第i位置元素取出并删除该元素
Ls.remove(x)
将列表中出现的第一个元素x删除
Ls.reverse()
将列表Ls中的元素反转
2.三、元组类型:用于元素不改变的应用场景,更多用于固定搭配场景。
元组与列表相似,能够包含多个元素,且元素类型能够不相同,书写时两个元素之间也是用逗号分隔。
元组的全部元素都写在一对小括号’()'内,且元组一旦建立,元组中的元素就不能被修改。
对于不包含任何元素的元组,即(),称为空元组。
元组使用小括号()或tuple()建立。
三、集合类型
与元组和列表相似,集合中一样能够包含多个不一样类型的元素,但集合中的各元素无序,不容许有相同元素且元素必须是可哈希的对象(可哈希对象是指拥有哈希内置函数的对象。列表、元组、集合和字典类型的数据不是可哈希对象,因此它们不能做为集合中的元素)。
建立集合
集合中的全部元素写在一对大括号’{}'中,各元素之间用逗号分隔。建立集合时,既可使用{},也可使用set函数:
set([iterable]) #iterable是一个可选参数,表示一个可迭代对象
可迭代对象:能够一次返回它的一个元素,如字符串、列表、元组都是可迭代的对象。
注意:
与字符串、列表、元组等序列类型不一样,集合中的元素不能使用下标方式访问。
集合主要用于作交、并、差等集合运算,以及基于集合进行的元素的快速检索。
{}用于建立空字典,若是要建立一个空集合,则须要使用set()。
集合操做符
操做符
说明
S | T
返回一个新集合,包括在集合S和T中的全部元素
S - T
返回一个新集合,包括在集合S但不在T中的元素
S & T
返回一个新集合,包括同时在集合S和集合T中的元素
S ^ T
返回一个新集合,包括集合S和集合T中的非相同元素
S <= T或S < T
返回True/False,判断S和T的子集关系
S >= T或S > T
返回True/False,判断S和T的包含关系
S |= T
更新集合S,包括在集合S和T中的全部元素
S -= T
更新集合S,包括在集合S但不在T中的元素
S &= T
更新集合S,包括同时在集合S和T中的元素
S ^= T
更新集合S,包括集合S和T中的非相同元素
集合操做函数
操做函数
描述
S.add(x)
若是x不在集合S中,将x增长到S
S.discard(x)
移除S中元素x,若是x不在集合S中,不报错
S.remove(x)
移除S中元素x,若是x不在集合S中,产生KeyError异常
S.clear()
移除S中全部元素
S.pop()
随机返回S的一个元素,更新S,若S为空,产生KeyError异常
S.copy()
返回集合S的一个副本
len(S)
返回集合S的元素个数
x in S
判断S中元素x,x在集合S中,返回True,不然返回False
x not in S
判断S中元素x,x不在集合S中,返回True,不然返回False
set(x)
将其余类型变量x转变为集合类型
集合类型的应用场景、
一、包含关系的比较
二、数据去重
四、字典类型
字典是另外一种无序的对象集合,但与集合不一样,字典是一种映射类型,每个元素是一个**键(key):值(value)**对。
在一个字典对象中,键必须是惟一的,即不一样元素的键不能相同;键必须是可哈希数据,即键不能是列表、元组、集合、字典等类型,值能够是任何类型。
对于不包含任何元素的字典,即{},称为空字典。
在访问字典中的元素时,不能经过下标方式访问,而是经过键访问([键])。
字典类型操做函数
函数
说明
del d[k]
删除字典d中键k对应的数据值
k in d
判断键k是否在字典d中,若是在返回True,不然返回False
d.keys()
返回字典d中全部的键信息
d.values()
返回字典d中全部的值信息
d.items()
返回字典d中全部的键值对信息
d.get(k,)
键k存在,则返回相应值,不在则返回值
d.pop(k,)
键k存在,则取出相应值,不在则返回值
d.popitem()
随机从字典d中取出一个键值对,以元组形式返回
d.clear()
删除全部的键值对
len(d)
返回字典d中元素的个数
字典类型应用场景
一、映射的表达:统计数据出现的次数,数据是键,次数是值;
二、元素遍历