Ce face slice()
Când scrii lista[1:5:2], Python creează în spate slice(1, 5, 2). Funcția slice() îți permite să păstrezi o astfel de felie într-o variabilă cu nume, util când extragi aceleași poziții din multe texte sau liste (de exemplu câmpuri de lățime fixă).
Metoda .indices(lungime) calculează valorile concrete (start, stop, pas) pentru o secvență de lungimea dată.
Parametri
| Parametru | Descriere |
|---|---|
start |
Opțional. Poziția de început (inclusă). |
stop |
Poziția de sfârșit (exclusă). |
pas |
Opțional. Pasul. |
Ce returnează
Un obiect slice.
Exemple
Exemplul 1: Câmpuri de lățime fixă
COD = slice(0, 4)
NUME = slice(4, 14)
PRET = slice(14, None)
randuri = ["P001Pâine 4.50", "P002Cafea 32.90"]
for r in randuri:
print(r[COD], r[NUME].strip(), float(r[PRET]))
Rezultat
P001 Pâine 4.5
P002 Cafea 32.9
Exemplul 2: Echivalența cu sintaxa [::]
numere = list(range(10))
f = slice(1, 8, 3)
print(numere[f], numere[1:8:3])
print(f.indices(5))
Rezultat
[1, 4, 7] [1, 4, 7]
(1, 5, 3)
Greșeli frecvente
- Te aștepți ca
slice()să returneze elementele. Returnează doar descrierea feliei; o aplici cusecventa[felie].
Comenzi înrudite
list (liste): Lista este o colecție ordonată și modificabilă de elemente, scrisă între paranteze drepte.range(): Generează un șir de numere întregi, folosit mai ales în bucle for.itertools.islice(): Ia o „felie” dintr-un iterator sau generator, ca [start:stop:pas] la liste.