<string>[char]
<string>[pos1:pos2]
<string>[:pos2]
, <string>[pos2:]
,<string>[-pos2:]
<string>.capitalize()
<string>.isupper()
list(cadena)
: separa en caracteres<string>.split()
: separa en palabras<delimitador>.join(<lista>)
: junta los elementos de la lista, poniendo en medio el delimitador (!!)len(string)
empty = []
, cadenas = ['uno','dos','tres','cuatro','cinco']
, numeros = [1,2,3]
, mixta = ['uno',2,['tres',3],'cuatro']
cadenas[1] = 'DOS'
'tres' in cadenas
→ truefor i in numeros:
for i in range(len(mixta)):
range(num)
: genera progresión aritmética de 0 a numrange(inicio,fin[,salto])
otra_mixta = cadenas + numeros
→ ['uno','dos','tres','cuatro','cinco',1,2,3]numeros * 2
→ [1,2,3,1,2,3]cadenas[1:]
→ ['dos','tres','cuatro','cinco']cadenas[:1]
→ ['uno','dos']cadenas[2:4]
→ ['tres','cuatro']cadenas[2:3]=['aaa','bbb']
→ ['uno','aaa','bbb','cuatro','cinco']<list>.append()
: añade elemento al final<list>.extend(<list>)
: añade al final de la lista otra lista, cambia la primera.<list>.sort()
: ordena<list>.pop(#elemento)
: extrae elemento de la lista (lo devuelve) en función del índice del mismodel <list>[#elemento]
: borra sin devolverlo en función del índice del mismo. permite slices<list>.remove(elemento)
: borra el elemento si sabemos cual esprint list('cadena')
: ['c','a','d','e','n','a']empty = dict()
diccio = {}
diccio[<clave>] = 'valor'
len(<diccionario>)
<diccionario>.get('<clave>',<default>)
'<clave>' in diccio
<diccionario>.values()
se pueden hacer búsquedas en los valoresinverse[val] = [key]
????tupla = 'a','b','c','d'
tupla = ('a','b','c','d')
tupla = 'a',
← nótese la coma finaltype(tupla)
tupla = tuple('cadena')
print tupa
→ ('c','a','d','e','n','a')tupla[0]
tupla[1:3]
← primero inclusive, último notuplaNueva = ('C',) + tupla[1:]
→ ('C','a','d','e','n','a')a,b = b,a
add='nombre@dominio.com
→ nombre,dominio = addr.split('@')
def printall(*args):
t = (7,3)
; divmod(*t)
← sin * da errors = 'abc
' ; t = [0,1,2]
; mizip = zip(s,t)
→ [('a', 0), ('b', 1), ('c', 2)]for letra,numero in mizip:print numero,letra
for indice,elemento in enumerate('abc'):
items()
para pasar el diccionario a tuplasdict()
para pasar una lista de tuplas a diccionariod = dict(zip('abc',range(3)))
→ {'a': 0, 'c': 2, 'b': 1}sort
se usa de una manera similar (ejemplo SORT en página 119)fout = open('fichero.txt','w')
; fout.write('una linea')
; fout.close()
fout
requiere stringstr()
palabras=5
; fout.write('Una cadena de %d palabras' % palabras)
import os
.getcwd()
.path.abspath('file')
: devuelve path absoluto al fichero.path.exists('file')
.path.isdir('file')
.path.isfile('file')
.path.join(dirname,name)
.listdir(cwd)
: devuelve una lista de ficheros y directorios de cwdtry: fin = open('fichero_no_existente') for line in fin: print line fin.close() except: print "Error"
import anydbm
db = anydbm.open('captions.db','c')
db.close()
import pickle
pickle.dumps(<anything>)
pickle.loads(<string>)
os.popen('ls -l')
: popen está deprecado a favor de subprocessfilename = 'book.tex' cmd = 'md5sum ' + filename fp = os.popen(cmd) res = fp.read() stat = fp.close() // devuelve None si todo correcto // res contiene el resultado del comando
if __name__ == '__main__': codigo
name
es una variable interna que se setea al arrancar el programa. Contiene main si se ejecuta como scriptreload
, pero parece no ser muy estable o deseadoclass Point(object): attributes: x,y class Rectangle(object): attributes: width,height,corner box = Rectangle() box.width = 100.0 box.height = 200.0 box.corner = Point() box.corner.x = 0.0 box.corner.y = 0.0
import copy
: copia objetos (aunque no objetos dentro del objeto si los hubiese, así que ese objeto embebido sería el mismo para los 2 objetos creados a través de copy.copy) → usar copy.deepcopyraise
: provoca/lanza una excepción