Com a exemples de seqüències, coneixem ja les llistes, les tuples i els strings. Però, què són les seqüències i que tenen d'especial? Dues de les característiques principals de les seqüències és l'operació d'indexació, que ens permet accedir directament a un element determinat dins la seqüència, i l'operació de segmentació (o slicing), que ens permet recuperar un segment o part de la seqüència.
Example 9.5. Ús de les seqüències
#!/usr/bin/python # Filename: seq.py shoplist = ['apple', 'mango', 'carrot', 'banana'] # Operació d'indexació print 'Item 0 is', shoplist[0] print 'Item 1 is', shoplist[1] print 'Item 2 is', shoplist[2] print 'Item 3 is', shoplist[3] print 'Item -1 is', shoplist[-1] print 'Item -2 is', shoplist[-2] # Segmentant una llista print 'Item 1 to 3 is', shoplist[1:3] print 'Item 2 to end is', shoplist[2:] print 'Item 1 to -1 is', shoplist[1:-1] print 'Item start to end is', shoplist[:] # Segmentant un string name = 'swaroop' print 'characters 1 to 3 is', name[1:3] print 'characters 2 to end is', name[2:] print 'characters 1 to -1 is', name[1:-1] print 'characters start to end is', name[:]
$ python seq.py Item 0 is apple Item 1 is mango Item 2 is carrot Item 3 is banana Item -1 is banana Item -2 is carrot Item 1 to 3 is ['mango', 'carrot'] Item 2 to end is ['carrot', 'banana'] Item 1 to -1 is ['mango', 'carrot'] Item start to end is ['apple', 'mango', 'carrot', 'banana'] characters 1 to 3 is wa characters 2 to end is aroop characters 1 to -1 is waroo characters start to end is swaroop
Primer veiem com es fan servir els índexs per a obtenir elements
individuals de la seqüència.
Cada cop que especifiquem un número entre claudàtors respecte a una
seqüència - com mostra l'exemple - Python localitza l'element que es
troba a la posició indicada pel número dins la seqüència. Recordem que
Python comença a comptar des del 0. Així:
shoplist[0]
es refereix al primer element, mentre que
shoplist[3]
és refereix al quart element de la
seqüència shoplist
.
L'índex també pot ser un número negatiu. En aquest cas, la posició és
calculada des del final de la seqüència. Així,
shoplist[-1]
es refereix al darrer element de la
seqüència i
shoplist[-2]
indica el penúltim.
Per a fer servir l'operació de segmentació cal especificar el nom de la
seqüència, seguit opcionalment per un parell de nombres separats per dos punts
:
. Es tracta d'una notació molt similar a la de l'operació
d'indexació que hem fet servir fins ara. Hem de tenir present que els
nombres són opcionals, però els dos punts és requerit.
El primer número (abans dels dos punts) a l'operació de segmentació es refereix a la posició des de la que el segment comença, mentre que el segon número (després dels dos punts) indica on finalitza el segment. Si el primer número no s'especifica, el segment començarà a l'inici de la seqüència. Si el segon número no s'especifica, el segment acabarà al final del string. Notem que el segment retornat comença a la posició d'inici, i acaba justament abans de la posició final. És a dir, la posició d'inici s'inclou al segment, mentre que la final no.
D'aquesta manera, shoplist[1:3]
retorna un segment
de la seqüència que comença a la posició 1, inclou la posició 2 però
finalitza a la posició 3, i es retorna un segment.
shoplist[:]
per la seva banda, retorna una còpia de
tota la seqüència.
També es poden segmentar amb posicions negatives. Els números negatius
permeten especificar posicions des del final de la seqüència. Per exemple,
shoplist[:-1]
nos retorna un segment de la seqüència
que inclou tots els elements d'aquesta menys el darrer element.
Practiquem amb diferents combinacions de les especificacions de segments des de l'intèrpret de Python. El millor de tot sobre les seqüències de Python és que es pot accedir de la mateixa manera a tuples, strings i llistes.