基本对象类型(二)
变量无类型,对象有类型
基本数据对象可分为:
1、整型、浮点型
2、布尔型
3、字符型
4、列表
5、元组
6、字典
整型和浮点型较为简单,主要是各种运算法则和 一些内置函数的使用;布尔型有两种状态,其运算结果可以作为程序执行的判断条件。
一、序列类型
接班数据对象中中字符串,列表,元组 又可以归结为序列类型,即上述对象中是按照一定顺序排列的一串元素;注意字典是按照键存储的方式,没有排列顺序的一串元素。
既然其有顺序,那么如何操作其中的具体元素?答:根据索引(index)
字符串,列表,元组他们既然有序列这种特性,那么他们就有某种共同的操作。比如:切片,+,*,排序,逆转,求序列中的最大(小)值,求序列的长度,求某个元素的索引等等。下面具体额阐述。
①通过索引取序列中的元素 A[i] ;字典是通过键取
②取序列中的某个切片 A[start:stop:step]
③判断某个元素是否在序列中 x in A;字典适用查询键
④求序列中元素的个数 l en(A) ;字典同样适用
⑤序列进行加法乘法运算
⑥除了列表均不可修改,元组如何修改 ;字典可以修改
⑦均可遍历打印各个元素(按顺序)
for x in sequence:
print(x)
⑧序列性对象的一些共同操作:
a:查询某个元素出现的次数 A.count(item)
b:计算某个元素(value)的索引值 A.index(value)
c:可以通过内建函数对序列进行逆转 reversed(A) #列表的两种弄方法
e:排序(必须是同种数据类型对象) sorted(A)
求最大的值 max(A)
求最小的值 min(A)
1.1字符串(string)
字符串是由字符组成的有序集合,不可修改。字符应该注意字符编码的问题。和字符编码有关的两个内建函数为:id() ord()
维基百科上字符串的定义为, :由零个或多个字符组成的有限串行。 用单引号或双引号圈起来表示。
字符串的基本操作有 切片、 拼接 、求序列长度 、判断元素是否在序列中,求最大最小值等等。
在交互式环境 中,输入dir(str)可以得到关于字符串类型的所有内建函数,查询资料并整理如下:
1 #判断字符串的构成 2 S.alpha() #判断字符串是不是全由字母构成 3 S.isdigit() #判断字符串是不是全由数字构成 4 S.isalnum() #判断字符串是不是全由数字或字母构成 5 S.islower() #判断是否全为小写字母 6 S.isupper() #判断是否全为大写字母 7 S.isidentifier() #可用来判断是否有空格 8 S.istitle() #判断字符串是否为标题模式,即字符串中所有的单词拼写首字母为大写,且其它字母为小写 10 #字符串大小写的转换 11 S.upper() #字符串字母转换成大写 12 S.lower() #字符串字母转换成小 13 S.capitalize() #字符串首字母大写,其余全部小写 14 S.title() #将字符串转换成标题格式 15 16 #字符串去掉空白字符 17 S.strip() #去掉字符串首尾的空白字符 18 S.lstrip() #去掉字符串首的空白字符 19 S.rstrip() #去掉字符串尾的空白字符 20 21 22 #字符串的切割与拼接(split and join) (字符串和列表的转换) 23 S.split(sep=None) #根据分隔符切割字符 串,默认空白,返回列表‘ 24 S.join(self, iterable, /) #将列表中的每个字符串元素拼接成一个字符串,并且用某个符号S链接; 25 26 #字符串的格式化输出 27 S.format() #'I LOVE {0} and {1} and {2}'.format(1,2,3) 'hello kitty {name}'.format(name='zhou') 28 s.format_map() #和format()区别仅在于,format()直接赋值,此种方法使用字典进行赋值 29 S.find(sub[, start[, end]]) #返回子字符串在S中的索引值(lowest) 30 S.rfind(sub[, start[, end]]) #返回子字符串在S中的索引值(highest)
replace(self, old, new, count=-1, /)
S.replace(old,new) #把old替换成新的字符
s.center(50,'&") #居中
s.startswith() #是否以某字符串开头
1.2 列表(list)
在Python中,用方括号表示一个列表——[].
在方括号里,可以是数字(整数,浮点数),也可以是字符串、 字典,列表(嵌套), 也就是说列表中的内容没有任何的要求。列表是个筐,什么都可以往里装。
和字符串、元组不一样的是,列表可以修改。通过索引值(index)查看,修改列表。整理如下:
1 L.index(x) #获得x的索引值 2 L.count(x) #计数x出现的次数 3 L.sort() #对列表进行排序,sorted(L) 4 L.reverse() #翻转列表 ,reversed(L) 5 6 #增加 7 L.append(x) #在队尾添加值x 8 L.insert(i,x) #在索引为i前添加x 9 L.extend(iterable) #拼接某个迭代的序列 10 L.copy() #列表的浅拷贝 11 12 #删除 13 L.clear() #清空列表 14 L.pop(i) #删除索引为i的值,并返回 15 L.remove(x) #删除值x
1.3元组(tuple)
元组是用圆括号括起来的,其中的元素之间用逗号隔开。元组中的元素是任意类型的Python对象。
元组是序列,这跟列表和字符串类似。但元组中的元素不能更改,这根列表不同,到是跟字符串类似;它的元素又可以是任何类型的数据,这跟列表相同,但不同于字符串
元组是一种序列,依然索引 、切片、index()、count()、max()、min()、sorted()等操作。
元组和列表的转换 : list(T) 实现元组转化为列表
tuple(L) 实现列表转换位元组
1.4字典(dict)
字典是python中唯一的映射类型,采用键值对(key_value)的形式存储数据。字典(dictionary)是除列表之外python之中最灵活的内置数据结构类型。字典当中的元素通过键来存取,而不是通过偏移存取(索引)。
在字典中没有索引的概念。字典类型对象是以键值对的形式存储数据的,所以只要知道键,就能得到值。这本质上就是一种映射关系。(对比序列中,知道索引,就知道值)
访问字典的值:通过键找值。
字典两大特点:
①无序,不是通过索引,通过键实现对字典
②键值对:
键: 唯一(不可变类型,int str tuple);字典和列表不能做键
值:任意类型 可以嵌套
字典的基本操作如下:
#定义 : D={key1:value,key2:value2,.....} Key唯一且不可变;value为任意对象 #查看,D.get(key) D[key] #修改 D[key1]=value #增加键值对 直接D[kEY]=VALUE len(D) #返回字典中的键值对的数量 d[key] #返回字典中的键的值 D[key]=value #将值Value赋给字典中的键 del D[key] #将字典中的键项删除 key in d #检查字典中是否含有键为key的项 D.fromkeys(iterable, value=None) #创建字典,键为iterable,值为任意,各项键值统一 D.copy() #浅拷贝,修改列表另一个也跟着改;修改字符串另一个不跟着改 D.clear() #请空字典 D.get(key) #得到字典中的某个键的值,不是特别严厉,如果键值不存在返回NONE D.setdefault(key, default=None)#朝字典中增键值对 D.items() #查看字典中所有的键值对 D.keys() #查看字典中所有的键 D.values() #查看字典中的所有值 D.pop(key) #删除某个键值对 并返回键值 D.popitem() #随机删除某个键值对 并返回一个元组(key,value) D.update(D1) #在字典中插入另一个字典
浙公网安备 33010602011771号