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操作,可创建一个值相同的新的对象。
  • 函数的参数传递:参数指向不可变对象,不会影响函数外的变量; 参数指向可变对象,对参数的 非赋值改变操作,影响函数外的指向相同的变量。