OrderedDict 有序字典
OrderedDict是dict的子类,它记住了内容添加的顺序。
比较时,OrderedDict要内容和顺序完全相同才会视为相等。
import collections
d = collections.OrderedDict()
d[3] = 'A'
d[2] = 'B'
d[1] = 'C'
for k, v in d.items():
print k, v
>>读取json串时如何保持原有顺序
import json
from collections import OrderedDict
metadata = json.loads(text, object_pairs_hook=OrderedDict);
这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。
如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。
同样的功能,StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快。
利用ImportError错误,我们经常在Python中动态导入模块:
try:
from cStringIO import StringIO
except ImportError:
OrderedDict是dict的子类,它记住了内容添加的顺序。
比较时,OrderedDict要内容和顺序完全相同才会视为相等。
import collections
d = collections.OrderedDict()
d[3] = 'A'
d[2] = 'B'
d[1] = 'C'
for k, v in d.items():
print k, v
>>读取json串时如何保持原有顺序
import json
from collections import OrderedDict
metadata = json.loads(text, object_pairs_hook=OrderedDict);
importlib的动态导入模块
有的时候,两个不同的模块提供了相同的功能,比如 StringIO 和 cStringIO 都提供了StringIO这个功能。这是因为Python是动态语言,解释执行,因此Python代码运行速度慢。
如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,这样就能大大提高执行速度。
同样的功能,StringIO 是纯Python代码编写的,而 cStringIO 部分函数是 C 写的,因此 cStringIO 运行速度更快。
利用ImportError错误,我们经常在Python中动态导入模块:
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
==与is的区别
==:比较的是值
is:比较的是对他的引用
#python的引用
#python中的对象:内存中存在的都是对象,包括简单的值,或者复杂的数据类型。
#对象分为可变的和不可变的两种
#可变对象:list,dict,set,自定义的类的实例
#不可变对象:数字,字符串元组