Professional Documents
Culture Documents
Listas
L=[]; L1=[]
Funciones que devuelven un valor
L.count(x) #n de veces que aparece x en L
L.index(x) #indice de 1a aparicin de x
L.__contains__(x) # x in L
L.__add__(L1) #L+L1: nueva lista aadiendo elementos
L.__mul__(n) #L*n es decir L + L + L (n veces)
L.__getslice__(i,j) #L[i:j]
L.__lt__(L1) #L<L1
Funciones que modifican la lista
L.remove(x) #elimina primer x de la lista
L.insert(i,x) #inserta x en lugar de ndice i
L.pop(i) #elimina (y entrega) el elemento de ndice i
L.append(x) #agrega al final de L
L.extend(L1) #extiende L con elementos de lista L1
L.reverse() #invierte los elementos de L
L.sort() #ordena los elementos de L
L.__setslice__(i,j,L1) #L[i,j]=L1
L.__iadd__(x) #L+=L1
L=D.items()
y
L=zip(D.keys(),D.values())
Ordenamiento
def quicksort(x,ip,iu):
if ip>=iu: return
i=particionar(x,ip,iu)
quicksort(x,ip,i-1)
quicksort(x,i+1,iu)
def particionar(x,ip,iu):
pivote=x[ip]; i=ip
for j in range(ip+1,iu+1):
if x[j]<pivote:
i=i+1;
x[i],x[j]=x[j],x[i]
x[ip]=x[i]; x[i]=pivote
return i
def particionar(x,ip,iu):
pivote=leerRegistro(x,ip); i=ip
for j in range(ip+1,iu+1):
if leerRegistro(x,j)<pivote:
i=i+1; intercambiar(x,i,j)
intercambiar(archivo,ip,i); return i
def leerRegistro(x,i):
x.seek(i*LargoReg); return x.read(LargoReg)
def escribirRegistro(x,reg,i):
x.seek(i*LargoReg); return x.write(reg)
def intercambiar(x,i,j):
ri=leerRegistro(x,i); rj=leerRegistro(x,j)
escribirRegistro(rj,x,i); escribirRegistro(ri,x,j)
def indice(x,archivo,ip,iu): #busqueda binaria
if ip>iu: return -1
im=(ip+iu)/2; registro=leerRegistro(archivo,im)
if x<registro: return indice(x,archivo,ip,im1)
if x>registro: return indice(x,archivo,im+1,iu)
return im
significado explicacin
crear stack vaco
s.push(x)
Poner x en stack.
Si est lleno produce la
excepcin StackFull
s.pop( )
s.reset( )
vaciar stack
s.empty( )
s.full( )
L[0]
L[1]
L[2]
class Stack:
def __init__(self): self.L=[]
def empty(self): return len(self.L)==0
def full(self): return False
def reset(self): self.L=[]
def push(self, x):
try: self.L.append(x) # poner al final
except MemoryError: raise StackFull()
def pop(self):
try: return self.L.pop() # sacar del final
except IndexError: raise StackEmpty()
class
def
class
def
StackEmpty (Exception):
__init__(self): pass
StackFull (Exception):
__init__(self): pass
None
primero
valor sgte
valor sgte
valor sgte
class Nodo:
def __init__(self,x,y): self.valor=x; self.sgte=y
class Stack:
def __init__(self): self.primero=None
def empty(self): return self.primero==None
def full(self): return False
def reset(self): self.primero=None
def push(self, x):
try: self.primero=Nodo(x,self.primero)
except MemoryError: raise StackFull()
def pop(self):
try:
v=self.primero.valor
self.primero=self.primero.sgte
return v
except AttributeError: raise StackEmpty()
None
sgte
class Diccionario:
def __init__(self): self.raiz=None
def buscar(self,x):r=ref(x,self.raiz);return r.significado
def cambiar(self,x,y): r=ref(x,self.raiz); r.significado=y
global ref, arbolConX, arbolSinX, arbolNuevo
def ref(x,r):
if r==None: raise NoExiste()
if x==r.palabra: return r
elif x<r.palabra: return ref(x,r.izq)
else: return ref(x,r.der)
def agregar(self,x,y):
self.raiz=arbolConX(x,y,self.raiz)
def arbolConX(x,y,r):
if r==None:
try: return Nodo(x,y)
except MemoryError: raise Lleno()
elif x==r.palabra: raise YaExiste()
elif x<r.palabra: r.izq=arbolConX(x,y,r.izq)
else: r.der=arbolConX(x,y,r.der)
return r
def borrar(self,x):
self.raiz=arbolSinX(x,self.raiz)
def arbolSinX(x,r):
if r==None: raise NoExiste()
elif x==r.palabra: return arbolNuevo(r)
elif x<r.palabra: r.izq=arbolSinX(x,r.izq)
else: r.der=arbolSinX(x,r.der)
return r
def arbolNuevo(r):
Matlab
ones(1,5); %1 1 1 1 1
zeros(1,5); %0 0 0 0 0
1:5; %1 2 3 4 5
1:2:9; %1 3 5 7 9
linspace(0,1,5) ; %0 0.2500 0.5000 0.7500 1.0000
rand(1,5); %0.xxxx 0.xxxx 0.xxxx 0.xxxx 0.xxxx
a=[1 2 ; 3 4];
a(2,2); %4 matriz(nfila,n columna)
a(1,: ); %fila 1
a(:,2); %columna 2
a(2,2:end); %2 a ltima columna de fila 2
a*a; %[7 9; 15 22] multiplicacin de matrices
a.*a;%[1 4;9 16] punto a punto
Evaluar polinomio
Matlab
y=sum(productos); %productos(1)+...+productos(n)
Python
def pol(a,x):
suma=0.0
potencia=1
for i in range(0,len(a)):
suma += a[i]*potencia
potencia *= x
return suma
Multiplicacin de matrices
Matlab
z=x*y;
Python
def producto(x,y):
filas=len(x);cols=len(y[0]);n=length(y)
z=[[0]*cols]*filas
for i in range(filas):
for j in range(cols):
for k in range(n):
z[i][j] += x[i][k]*y[k][j]
return z
z=producto(x,y)