Pagini recente » Diferente pentru blog/open-source intre reviziile 7 si 6 | Diferente pentru blog/de-ce-python intre reviziile 13 si 12 | Diferente pentru blog/cunoasterea-pe-net intre reviziile 3 si 2 | Diferente pentru blog/deep-learning-alien-labs intre reviziile 11 si 10 | Diferente pentru blog/de-ce-python intre reviziile 12 si 11
Nu exista diferente intre titluri.
Diferente intre continut:
Metoda _map(functie, secventa)_ ne intoarce o lista care sunt rezultatele aplicarii functiei peste elementele unei secvente. Operatorul _reduce(functie, lista)_ ne intoarce rezultatul aplicarii cumulate a functiei peste elementele secventei. Putem scrie cod de genul:
== code(c) |
>>> # un sir de intregi din unul de stringuri
>>> map(int, ["1", "2", "3"])
>>> map(int, ["1", "2", "3"]) # un sir de intregi din unul de stringuri
[1, 2, 3]
>>> # suma elementelor din un sir
>>> reduce(lambda x,y: x + y, [1, 2, 3])
>>> reduce(lambda x,y: x + y, [1, 2, 3]) # suma elementelor din un sir
6
>>> # filtram elementele impare
>>> filter(lambda x: x % 2 == 0, [1, 2, 3])
>>> filter(lambda x: x % 2 == 0, [1, 2, 3]) # filtram elementele impare
[2]
==
Mai imi plac si _list comprehensions_ care sunt doar _zahar sintactic_, dar le folosesc destul de des. Ele sunt o modalitate naturala si succinta de a crea liste. Va dau mai jos cateva exemple:
== code(c) |
>>> # patratele numerelor de la 1 la 4
>>> [x**2 for x in range(1, 5)]
>>> [x**2 for x in range(1, 5)] # patratele numerelor de la 1 la 4
[1, 4, 9, 16]
>>> # pentru doi vectori a si b
>>> a, b = [1, 2, 3, 4], [1,4,8,16]
>>> # vrem toate sumele posibile intre un element din a si unul din b
>>> [x + y for x in a for y in b]
>>> a, b = [1, 2, 3, 4], [1,4,8,16] # pentru doi vectori a si b
>>> [x + y for x in a for y in b] # vrem toate sumele posibile intre un element din a si unul din b
[2, 5, 9, 17, 3, 6, 10, 18, 4, 7, 11, 19, 5, 8, 12, 20]
==
Si imi mai plac _tuplurile_ pentru ca de multe ori ai nevoie de cate un tip de date rapid. De exemplu un punct 3 dimensional il putem obtine ca _punct = (-1, 0, 11)_.
Ca minusuri, unul mare este eficienta. Astfel cand scriam solutii pentru probleme de la google code jam, unele erau de 50 pana la 100 de ori mai incete ca varianta implementata in java sau C++. Dar cred ca productivitatea programatorului este mult mai importanta ca eficienta codului, iar Python lucreaza bine cu limbajul C si bucatile ineficiente pot fi reimplementate in C.
Sper ca daca nu ati lucrat deja in Python v-am trezit putin apetitul. Iar daca ati lucrat ce caracteristici v-au placut.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.