1. 小整数对象池
整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。
Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,
所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。
In [1]: a=-5
In [2]: b=-5
In [3]: a is b
Out[3]: True
In [4]:
1、检测指定路径下所有文件所占用内存
import os
def check_memory(path, style='M'):
i = 0
for dirpath, dirname, filename in os.walk(path):
for ii in filename:
i += os.path.getsize(os.path.join(dirpath,ii))
if style == 'M':
memory = i / 1024. / 1024.
print '
python中基本数据类型和其他的语言占用的内存空间大小有很大差别
import sys
a = 100
b = True
c = 100L
d = 1.1
e =""
f = []
g =()
h = {}
i = set([])
print " %s size is %d "%(type(a),sys.getsizeof(a))
print " %s size is %d "%(type(b),sys.getsizeof(b))
print " %s size is %d "%(type(
以三维数组为例
先申请1个一维数组空间:
mat = [None]*d1
d1是第一维的长度。
再把mat中每个元素扩展为第二维的长度:
for i in range(len(mat)):
mat[i][j] = [None]*d2
类似的,把mat中每个元素扩展为第三维的大小:
for i in range(len(mat)):
for j in range(len(mat[0]):
mat[i][j] = [None]*d3
以上是创建的“数组”其实是list类,不是