watt ([info]watt) rakstīja [info]koderi kopienā,
@ 2007-11-12 12:04:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Poll #13271 list comprehensions vs. funkcionālais stils
Open to: All, results viewable to: All

Par kuru koda fragmentu tev ir vieglāk pateikt, ko tas dara un kāds būs rezultāts?

View Answers

a = [i for i in lst if i > 42]
13 (81.2%)

a = filter(lambda x: x > 42, lst)
3 (18.8%)



(Pieņemt ka lst = [50,1,60,2,70,3])
Sīkāk par lambda un funkcionālajiem frīkiem: http://hupp.org/adam/weblog/2007/11/10/python-lambda-shorthand/


(Lasīt komentārus) - (Ierakstīt jaunu komentāru)


[info]bubu
2007-11-15 23:47 (saite)
Otrais variants pie tam būs lēnāks, jo tam būs jāizsauc tā lambda funkcija uz katru lista elementu. Ne velti Gvido izmeta ārā reduce no Python3k. filter gan vēl palika..

(Atbildēt uz šo) (Diskusija)


[info]watt
2007-11-17 11:08 (saite)
nav jau obligāti kompilēt to lambdu kā funkciju: vienkāršākos gadījumus tas ir tikai expression, kas jāiekompilē tai otrā funkcijā vajadzīgajā vietā. tb viss atkarīgs no optimizatora.

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]bubu
2007-11-17 16:20 (saite)
Tas, ka optimizators to varētu, es nemaz nešaubos. Bet ja pats Guido saka, ka lambda ir lēnāka, tad es viņam ticu uz vārda ;)

http://www.artima.com/weblogs/viewpost.jsp?thread=211200
Don't use these with a lambda though; then a list comprehension is clearer and faster.

(Atbildēt uz šo) (Iepriekšējais)


(Lasīt komentārus) -

Neesi iežurnalējies. Iežurnalēties?