您的位置:首页 > 编程语言 > Python开发

python核心数据类型笔记

2015-12-14 23:05 525 查看
在这里,首先声明,python核心数据类型在这里就认为是python内置的数据类型
在python中。序列类型包含字符串,列表和元组
字符串:
字符串字面量:将文本引入单引号,双引号,三引号
默认的编码类型是字符编码(8bit)
在python2中,如果要使用unicode编码(16bit),需在定义字符串的引号前面加u
在python中,有文档字符串的概念,所谓文档字符串就是在模块,类或则是函数中的第一条语句是一个字符的话(用引号定义),那么该字符就是文档字符串,可以使用__doc__属性引用
eg:def stringtest():
"test string" //文档字符串也要遵循格式,例如此处前面要有四个空格
print “python”
引用函数stringtest()即可
引用属性,比如此处引用__doc__属性,stringtest.__doc__
字符串支持的操作:
索引,分片,扩展分片(注意分片会生成一个新的内存对象,不会修改原对象)
str类型的内置方法(可使用dir(str)获取)

列表:
列表是容器类型
定义:任意对象的有序集合,通过索引访问其中的元素,列表是可变对象,支持异构(包含不同类型的内存对象),支持任意嵌套
支持在原处修改:
修改指定的元素,修改指定的分片,删除语句,内置方法(reverse,sort,count,append,extend,index,pop,remove)
list1 + list2:合并两个列表,返回一个新的列表,不会修改原列表
list1*N:把列表重复Nc次返回一个新的列表,不修改原列表
in:成员关系判断字符,obj in container
not in:同上
使用append是附加,如果附加的是一个列表,那么这个列表会被当成是一个元素,切片和extend的方式会附加成分开的元素(如果附加的对象是一个列表)
列表复制方式:
1.list2 = list1 //这种方式list1和list2引用的是同一个内存对象,所以其中一个列表做了修改,另一个列表也会相应的修改(浅复制)
2.list2 = list[0:] //这种方式就相当于将list1的所有元素取出重新赋值给list2
3.list2 = copy.deepcopy(list1) //这种方法需要先导入python的一个内置模块copy,然后使用该模块中的deepcopy方法达到深度复制的目的

元组(tuple):

也是一种容器类型
任意对象的有序集合,通过索引访问其中的元素,支持异构和嵌套,但是是不可变类型,索引其一旦定义就是定长的
内置方法:count,index
常见操作:定义空元组 ()
定义元组时可以省略括号(不建议使用)
tuple1 + tuple2:生成一个新元组
tuple*N:和列表的意义类似
元组也支持成员关系判断
虽然元组本身不可变,但是当元组内部嵌套了可变的元素(比如一个列表作为该元组的一个元素),那么此类元素的修改不会返回新元组

字典(dict):

字典中存储的都是key-value键值对,在其他编程语言中又称作关联数组或则散列表,在python中,字典属于可变类型的容器,支持异构和嵌套,与列表不同之处在于字典的元素是无序的,只能通过键来实现元素存取,任意类型都可以做键,序列类型中只能用数字做键。
字典的定义:{},里面的每个元素使用,分割开,键值之间使用:分割
{key1:value1,key2:value2....}
内置方法:clear //清除所有元素
copy //字典复制:dict2 = dict1.copy(),相当于深复制
dict2 = dict1 //浅复制
formkeys //dict2 = dict1.formkeys(S,[v]) 从字典S中读取键,然后值使用v指定
get //指定键取值
has_key //判断是否有某个键
items //返回列表,列表中的每个元素都是之前字典中的键值对组成的一个元组
变量解包(unpack):

dict1 = {'a':[1,2,3],'b':[4,5,6]}
dict1.items()的结果是:[('a',[1,2,3]),('b',[4,5,6])]
tuple1,tuple2 = dict1.items()的结果: //这种方式就是python中的变量解包
tuple1 = ('a',[1,2,3])
tuple2 = ('b',[4,5,6])
变量解包,左右一定要对应

keys: //返回的是一个键列表
values //返回的是一个值列表
pop //弹出指定的key所对应的键值对
popitem //随机弹出键值映射
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息