基本对象类型(二)

变量无类型,对象有类型

基本数据对象可分为: 

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)  #在字典中插入另一个字典

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2018-08-30 17:36  aled1  阅读(260)  评论(0)    收藏  举报