1. import os,sys def getSuffix(s): tmp = s.split('.') if len(tmp) == 1: return None return tmp[-1] def inspectFileNames(dct,dr,flst): for f in flst: suff = getSuffix(f) if suff == None: continue if suff in dct.keys(): dct[suff] += 1 else: dct[suff] = 1 def countLikeFiles(): fileGrps = {} os.path.walk('.',inspectFileNames,fileGrps) return fileGrps try: os.mkdir('testcase') except: pass os.chdir('testcase') top = os.getcwd() try: f = open('abc.x','w') f.close() f = open('def.y','w') f.close() except: pass try: os.mkdir('a') except: pass os.chdir('a') try: f = open('ghi.y','w') f.close() except: pass os.chdir(top) print countLikeFiles() 2. class mtrx: def __init__(self,x,nr): self.m = x self.nr = nr self.nc = len(x) / nr def getElement(self,i,j): return self.m[i*self.nc+j] def putElement(self,i,j,val): self.m[i*self.nc+j] = val def mulvec(self,v): vout = self.nr * [0] for r in range(self.nr): s = 0 for c in range(self.nc): s += self.getElement(r,c) * v[c] vout[r] = s return vout z = mtrx([1,2,3,8,9,10],3) print z.getElement(1,1) # 8 z.putElement(1,0,12) print z.m # [1,2,12,8,9,10] print z.getElement(1,0) # 12 print z.mulvec([5,-2]) # [1,44,25]