ÎncepețiÎncepe gratuit

Practică cu funcții built-in: enumerate()

În acest exercițiu, vei exersa utilizarea funcției built-in enumerate() din Python. Această funcție este utilă pentru a obține o listă indexată. Să presupunem, de exemplu, că ai o listă cu persoanele sosite la o petrecere pe care o organizezi. Lista este ordonată după ordinea sosirii (Jerry a sosit primul, urmat de Kramer etc.):

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Dacă ai vrea să atașezi un index care să reprezinte ordinea de sosire a fiecărei persoane, ai putea folosi următoarea buclă for:

indexed_names = []
for i in range(len(names)):
    index_name = (i, names[i])
    indexed_names.append(index_name)

[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]

Însă aceasta nu este cea mai eficientă soluție. Hai să vedem cum putem folosi enumerate() pentru a face lucrurile mai eficient.

Acest exercițiu face parte din cursul

Scriere eficientă a codului Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • În loc să folosești for i in range(len(names)), actualizează bucla for astfel încât să folosești i ca variabilă de index și name ca variabilă iteratoare, utilizând enumerate().
  • Rescrie bucla for anterioară folosind enumerate() și list comprehension pentru a crea o nouă listă, indexed_names_comp.
  • Creează o altă listă (indexed_names_unpack) folosind caracterul asterisc (*) pentru a despacheta obiectul enumerate creat prin aplicarea enumerate() pe names. De această dată, pornește indexul pentru enumerate() de la unu în loc de zero.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
    index_name = (i,name)
    indexed_names.append(index_name) 
print(indexed_names)

# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)

# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)
Editează și rulează codul