python数据类型总结
Fri 11 October 2013 by wbn从去年8月份开始学习python到现在,虽然没有写过什么高级的东西,但使用过程中,个人感觉 python的灵活使用很大部分来自于其内置的数据类型。刚好这一段时间读了Learning Python, 书里面用了一个Part来介绍Python的数 据类型,故总结在此。
Python的内置数据类型
- Numbers
- Strings
- Lists
- Dictionaries
- Tuples
- Files
- Sets
Numbers
immutable
就注意下小数,分数都有内置的库支持。
Sets
mutable
Sets are collections of immutable objects and support operations correspond to math set operations.
适用点:
- 去重
- 在遍历图时,记录已经过结点
- 几个有一定关系的数据集之间可能发生集合操作的
Strings
immutable
对string的各个操作都会返回一个新的string,之前的string是不会变的。
Lists
mutable
list的各个方法调用,直接对原list进行操作,不要把结果再赋值回去。
Dictionaries
mutable
要固定dictionary的输出顺序,对keys进行排序,然后输出。
Tuples
immutalbe lists
注意只对最顶层的内容是不可修改的。如果tuple内有元素是可变的(如一个元素是list类型), 那么可以对list进行操作。
Python的动态类型
在python中,变量名是没有类型的,变量名只是指向了一个具体的对象。因此,类似一个空指针 ,可以任意修改指针指向其他的对象。因此变量看起来是动态类型的。
- 变量名为右值的赋值操作会使两个变量指向同一个对象。
- 更改指向不可变对象的变量的值,之前指向相同对象的变量的值不变。
- 更改指向可变对象的变量的值(非赋值操作),其他指向相同对象的变量的值跟随改变。
- 通过copy操作,可创建一个值相同的新的对象。
- 函数的参数传递:参数指向不可变对象,不会影响函数外的变量; 参数指向可变对象,对参数的 非赋值改变操作,影响函数外的指向相同的变量。