[python] Seznamy

Vladimir Macek macek na sandbox.cz
Pátek Únor 6 22:55:45 CET 2015


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



Další informace o konferenci Python