Python类型

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

文章出处:http://www.cnblogs.com/winstic/,请保留此连接

python是动态类型语言,不需要预先声明变量的类型,变量类型和值在赋值的那一刻被初始化

python使用对象模型来存储数据,构造任何类型的值都是一个对象

数字(Number)有符号整型长整型布尔值浮点数负数decimal(2.4版新增)用于十进制浮点型,但需要引入包decimal>>>importdecimal>>>PRintdecimal.Decimal(1.1)1.100000000000000088817841970012523233890533447265625

python 2.3开始,超出整型范围的会自动转换为长整型。

字符串(String)

单引号与双引号等价,三引号保留原字符串格式,'+'用于字符串连接,'*'用于字符串重复

[]:索引操作符,[:]:切片操作符

>>> pystr ="python">>>pystr[0]'p'>>> pystr[2:4]'th'>>> pystr +'cool''python cool'>>> pystr * 2'pythonpython'

列表(list)

列表用[ ]标识。是python最通用的复合数据类型list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

列表解析:在一行中使用for循环,将所有值放到一个列表中>>> pylist = [x ** 2forxinrange(4)]>>>type(pylist)<type'list'>

>>>printpylist

[0,1, 4, 9]

对于上述的列表解析形式,有一种很类似的形式使用的操作时(),但返回的是迭代器(generator)类型,在此列出加以区分(注意不要与元组混淆)>>> pya = (x ** 2forxinrange(4))>>>type(pya)<type'generator'>

>>>foriinpya:printi

列表同样满足索引操作([]),切片操作([:])

元组(Tuple)

元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值,相当于只读列表。 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )

元组同样满足索引操作([]),切片操作([:])

字典(dictionary)

字典是python中的映射数据类型,类似于perl中的关联数组或哈希表,由键-值(key-value)对构成,一般用不可变对象(immutable)作为键值字典用"{ }"标识。字典由索引(key)和它对应的值value组成。tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

字典(dictionary)是除列表外python之中最灵活的内置数据结构类型。两者之间的区别在于(当然不止以下区别):列表是有序的对象结合,字典是无序的对象集合。字典当中的元素是通过键来存取的,而列表通过偏移存取。集合(set)

集合对象是一组无序排列的可哈希值,因此集合成员可以作为字典的键。因集合是无序的,故无法对集合执行索引和切片操作。集合分为可变集合(set)和不可变集合(frozenset);对可变集合可以执行简单的添加和删除等操作。>>>#集合set的简单操作>>> s = set('python')#利用工厂函数set()创建集合>>>s

set(['h','o','n','p','t','y'])>>>'p'ins#判断元素是否在集合中True>>> set('py') < s#子集True

可以看到上面,集合的打印结果是无序的,而且以上只是简单举例集合操作,想要了解更多关于集合的操作可以使用函数dir() 和help()查看。

可变对象(mutable)和不可变对象(immutable)的区别

首先再次声明,在python中所有的类型操作都作为对象处理,而且对变量的使用不需要预先声明类型(其实这里不该使用“变量”描述,姑且用“变量”代替吧),python会根据变量的值动态确定变量类型并存储在内存中(这是python的一大特点),对于immutable类型,若要改变它的值,采取的机制是分配一个新的对象(这里不必担心内存浪费的情况,python有自己的一套内存回收机制);而对于mutable 类型还是在原来的内存地址上进行操作,~~类似于在C++ 中的引用。

下面给以上类型分分类:

不可变对象(mutable):Number , String , tuple , frozenset

可变对象(immutable):list , dictionary , set

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航