Python标准数据类型
标准数据类型:
Number(数字)----int float bool complex(复数)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Set(集合)
数字
1.复数
2.操作符
类型转换原则:整转浮,⾮复转复
3.算术操作符
expr1**expr2 乘⽅ expr1/ expr2 传统除(或真正除) expr1//expr2 地板除
4.位操作符(只适⽤于整型)
~num 按位取反,0变1,1变0 num1<<num2 num1的⼆进制位左移num2位,右移>>则相反
num1&num2 与,两个1为1,否则为0 num1^num2 异或,相异为1 num1|num2 或,有⼀个1则为1
5.内建函数和⼯⼚函数
转换⼯⼚函数:int() float() complex() hex()⼗六进制 oct()⼋进制
功能函数:abs() divmod(a,b)把除数和余数运算结果结合起来,返回⼀个包含商和余数的元组(a // b, a % b) pow(a,b)a的b次⽅ round(a,b)对浮点型进⾏四舍五⼊运算,第⼆参数为精确位数
关于int():如果是字符串转数字,则字符串必须是数字,不能有⼩数点。9_6被当作96,但不能以下划线开头
序列:字符串、列表、元组
1.序列类型操作符
seq[ind] 获得下标为ind的元素,下标从0开始
seq[ind1:ind2] 获得下标从ind1到ind2的元素集合,含头不含尾
seq*expr 序列重复expr次
seq1+seq2 连接序列seq1和seq2
obj in seq 判断obj元素是否包含在seq中
obj not in seq 判断obj元素是否不包含在seq中
2.序列类型转换函数
list(iter) 把可迭代对象转换成列表
str(obj) 把对象转换成字符串
tuple(iter) 把可迭代对象转换成元组
3.序列类型内建函数
len(seq) reversed(seq)seq -- 要转换的序列,可以是 tuple, string, list 或 range,返回⼀个反转的迭代器 sum(seq)
上⾯三个函数只能接受可迭代对象作为参数,接下来的还可接受可迭代对象作为参数
max()和min() sorted(iterable, key=None, reverse=False)对所有可迭代的对象进⾏排序操作,key=str.lower忽略⼤⼩写排序,默认升序,reverse=True降序
sorted()与sort()的区别:sort应⽤在list,sorted可以对所有可迭代的对象进⾏排序操作;sort()是对已经存在的列表进⾏操作,sorted()返回的是⼀个新的list
4.字符串
(1)Python⾥⾯单引号和双引号的作⽤是相同的,因字符串不可变,不能仅仅删除⼀个字符串⾥的某个字符
1 a = 'Hello World!'#去除l
2 a = a[:3]+a[4:] #这是⼀个新串
字符串做⽐较操作,按ASCII值,a:97 A:65 a-A=32
1 a = 'Qwer'
2 a.upper() #⼩写变⼤写 QWER
3 a[:2].upper() #可配合切⽚⽤ QW
4 a.lower() #⼤写变⼩写 qwer 这种操作并不会改变原来a的值
(2)Python必须为每⼀个参加连接操作的字符串分配新的内存,包括新的字符串,所以出于性能考虑,⽤%或join()连接字符串
'%s %s' % ('Chen','hongbing') #'Chen hongbing'
s = '-'.join(('C','H','B')) #'C-H-B'
(3)格式化字符 转换⽅式
%c 转换成字符(ASCII值)
%s 优先⽤str()函数进⾏字符串转换
%r 优先⽤repr()函数进⾏字符串转换
r' ' 关闭转义,如print(r'\n %%')输出\n %%
(4)内建函数
1 len(str) #返回字符数
2 max(str)和min(str) #返字符串中ASCII值最⼤或最⼩的字符
3 chr(65)--->'A'#参数范围在range(256)返对应字符
4 ord('a')--->97 #与chr()对应
5
6 string.find(str,start,end) #如在返索引值,否则返-1
7 string.strip([chars]) #删除字符串开尾指定的字符,默认空格
8 string.split(str,num) #以str为分隔符切⽚string,分隔num个字符串
9 string.splitlines() #按照⾏分隔,返列表
place(str1,str2,num) #把str1换成str2,不超过num次
unt(sub,start,end) #统计sub从下标start到end之间出现的次数
de(encoding='utf-8',errors='strict') #对字符串进⾏编码,strict严格编码,errors可指定ignore⽆视
13 string.decode(encoding='utf-8',errors='ignore') #对字符串进⾏解码
(width) #返回⼀个原字符串居中。并使⽤空格填充width个
15 string.capitalize() #把字符串第⼀个字符⼤写
16 string.swapcase() #翻转string中的⼤⼩写
View Code
5.列表
(1)删除列表中的元素或者列表(本⾝)
del a[index] a.remove(元素) pop(元素)返删除的元素
列表类型的连接操作只能在同类型之间进⾏,即便他们都是序列类型也不⾏
(2)内建函数
d(L) #将列表L连接到list的末尾
unt(x) #返元素x出现次数
3 list.insert(i,x) #把x插⼊到下标为i的位置
4 list.index(x) #返回第⼀次出现x的下标
py() #返回⼀个复制列表
View Code
(3)将⼀个列表倒序的⼏种⽅法
1 s = [2,4,6,8]
2 list1 = [i for i in reversed(s)]
3 list2 = sorted(s,reverse=True)
4 list3 = s[::-1]
verse()
6.元组
与list类似,有append()、insert()等⽅法,但是⼀旦初始化就不能再修改,更安全,元组⽤ ( ) 标识。
1 tuple1 = (1,) #只有⼀个元素时也要⽤逗号隔开
2 tuple2 = ('a',2,['A','B']) #"可变"tuple,可变是元素中的list中的元素可变,tuple本⾝是不可变的
3
4for i in tuple2[:]:
5print(i)
6print('---------------------------')
7
8 tuple2[2][0] = 'X'#改变的是tuple2元素中的list中的元素
9for i in tuple2[:]:
10print(i)
11print('---------------------------')
12
13print(tuple2*2) #输出元组两次
14print('---------------------------')
15
16print(tuple1+tuple2) #打印组合的元组
17print('---------------------------')
映像和集合类型
1.字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是⽆序的对象集合。能存储任意个数的Python对象(包括其他容器类型),⽆序,键唯⼀
dict.keys()键的集合 dict.values()值的集合 以列表的形式返回
dict.items()得到包含键值对的元组的列表 [(key1,value1),(...)]
检查⼀个字典中是否有某个键 in not in 如‘abc’ in dict
⽤del 删除字典中的某个键或是清除整个字典
字典不⽀持拼接和重复操作
字典⽐较:⾸先是字典⼤⼩(长度)、让后是键,最后是值
内建函数:
1 dict
2 = py() #浅复制
2 len(dict) #返回键值对的数⽬
3 hash(obj) #判断某个对象是否可做字典的键,返这个对象的哈希值
4 dict.clear() #删除字典中所有元素
5 dict.fromkeys(seq,val) #创并返新字典,seq中的元素为键,val为值,所有seq键的值都为val,不修改原来dict字典
(key,default) #返key键对应值,如不在,返default值(可缺省)
7 dict.pop(key,default) #删除并返dict[key]对应的值,如不在,返default值(可缺省)
8 dict.update(dict2) #将字典dict2的键值对添加到字典
字符串函数strip的作用View Code
字典中的值没有任何限制,可以是任意对象,标准对象和⾃定义对象皆可
字典中的键有类型限制,每个键只能对应⼀项,不允许⼀键对应多个值(像列表,元组和其他字典对象则可以)
当有键发⽣冲突,取最后(最近)的赋值
⼤多数Python对象可以作为键,但他们必须是可哈希的对象,像列表和字典这样的可变类型不能作为键(但可做值),所有不可变类型都是可哈希的
除了⽤{ }直接创建字典外,还可⽤字典推导来构建新的dict。字典推导可以从任何以键值对作为元素的可迭代对象中构建出字典
2.集合
集合的本质是许多唯⼀对象的聚集。因此,集合可以⽤于去重
两种类型:可变集合(set)和不可变集合(frozenset)
可变类型:可添加和删除元素
操作符:in not in == != < <= > >= &(交集) |(合集) -(差补 s-t只属于s⽽不属于t) ^(异或 s^t属于s或t,不能同时属于两个集合)
s.add(元素) s.update(元素) s.remove(元素) s.pop() s.clear()删除集合中所有元素 len(set) s.copy()返新集合,浅复制
3.dict和set
字典和集合的速度是⾮常快的,如果在你的程序⾥有任何的磁盘输⼊/输出,那么不管查询有多少个元素的字典或集合,所耗费的时间都能忽略不计
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论