[GiM logo] gim.org.pl is down || odświeżony jogger (v.0.4) GiMa

Jeden znajomy poinformował mnie że można ze słownika usuwać elementy w taki sposób [pomijam dlaczego akurat tak]:

  • a = { '1':1, '2':1, '3':1, '4':1, '5':1, '6':1 }
  • for i in a.keys():
  •     del a[i]
  • print a
Jednakże podobny kod w przypadku list, działa ciut inaczej:
  • a = range(10)
  • for i in a:
  •     a.remove(i)
  • print a
No więc domyślam się, że pythonowy for a in b, działa jakoś tak:
  • a = range(10)
  • j = 0
  • while j < len(a):
  •     i = a[j]
  •     a.remove(i)
  • print a
Pomijam, że mi wystarcza del a[:], ale to tak w ramach testów.
catz: [kom.puterowe] [pro.gramowanie]
tagz: [dict] [list] [python] [remove elements]
dnia wtorek, 14 listopad 2006, 230534 by Michał 'GiM' Spadliński

Komentarze:

Proszę wpisy pisane po angielsku komentować również w tym języku.

W wypadku słownika szybciej chyba będzie napisać a.clear() no i jak chcemy mieć pustą liste to nie lepiej ją przypisać do zmiennej niż wszystko z niej kasować, czyli zamiast
del a[:]
napisać:
a = []
a ponieważ 'a' przestanie się odwoływać do poprzedniej listy to Python samodzielnie opróżni pamięć po niej.

dnia środa, 15 listopad 2006, 013457 by TomAsh

co do clear oczywiście racja, ale to i tak nieistotne :)
co do a = [] true, thx ;)

dnia środa, 15 listopad 2006, 135533 by GiM

Polecam poczytać sobie książkę "Python. Receptury"... takich smaczków optymalizacyjnych jest tam więcej.

dnia środa, 15 listopad 2006, 175022 by TomAsh

..tożsamość..:
..meritum..:
..lokum..:
Wpisz kod:code