[python] Seznamy
Ales Zoulek
ales.zoulek na gmail.com
Sobota Únor 7 22:24:53 CET 2015
"lists.pop()" melo byt pravdepodobne "sets.pop()", jinak urcite radsi to
druhy.
Jinak na to existuje zkratka, ktera dela v zasade to stejne -
set.intersection() bere jako parametr libovolny pocet setu. Takze toto by
melo byt rozumne kratky a furt dost citelny:
non_empty_sets = [set(l) for l in (list_a, list_b, ..) if l]
result_set = set.intersection(*non_empty_sets)
return list(result_set)
On Fri Feb 06 2015 at 10:55:51 PM Vladimir Macek <macek na sandbox.cz> wrote:
> Dovolte poznámku,
>
> je fajn, jak Honza dodal dva návrhy. Tipuju, že ten druhý je čitelnější pro
> začátečníky, je takový imperativní. :-)
>
> Doporučoval bych však zkusit pochopit eleganci toho druhého, který je IMO
> přístupnější pro zkušené a otevírá trochu jiný svět uvažování.
>
> Čitelnosti by pomohlo rozdělení na dva řádky (nejdřív nazvat generátor),
> což jistě Honza ví.
>
> Pokud tazateli zároveň půjde o zachování pořadí prvků, může se podívat po
> typu OrderedSet (http://code.activestate.com/recipes/576694/).
>
> Vl.
>
> On 6.2.2015 20:50, Honza Král wrote:
> > tohle je kratka odpoved:
> >
> > import operator
> > reduce(operator.and_, (set(l) for l in (list_a, list_b, list_c) if l))
> >
> > ale asi ne nejlepsi (neni prilis citelna)
> >
> >
> > doporucil bych spis neco jako:
> >
> > sets = [set(l) for l in (list_a, list_b, ..) if l]
> >
> > result =lists.pop()
> >
> > for s in sets:
> > result &= s
> > list_vysledny = list(result)
> >
> >
> > Honza Král
> > E-Mail: honza.kral na gmail.com
> > Phone: +420 606 678585
> >
> >
> > 2015-02-06 20:10 GMT+01:00 Marcus Scalpere <marcus.scalpere na gmail.com>:
> >> Pěkný večer vinšuji,
> >> mám několik seznamů a potřebuji zjistit, které jsou a nejsou prázdné
> (to bych ještě dal) a pokud některé prázdne nejsou, tak je projít a pokud
> jsou některé hodnoty ve VŠECH, tak je uložit.
> >> Něco jako:
> >> list_a = []
> >> list_b = [x, y, z]
> >> list_c = [x, y]
> >> .
> >> .
> >> .
> >> list_vysledny = [x, y]
> >>
> >> Snad jsem se vyjádřil jasně a srozumitelně. Děkuji mnohokráte
>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150207/ed644d16/attachment.html>
Další informace o konferenci Python