<div dir="ltr">"lists.pop()" melo byt pravdepodobne "sets.pop()", jinak urcite radsi to druhy.<br><div><br></div><div>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:<br><br></div><div><span style="line-height:19.7999992370605px">non_empty_sets = [set(l) for l in (list_a, list_b, ..) if l]</span><br></div><div>result_set = set.intersection(*non_empty_sets)<br></div><div>return list(result_set)</div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote">On Fri Feb 06 2015 at 10:55:51 PM Vladimir Macek <<a href="mailto:macek@sandbox.cz">macek@sandbox.cz</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dovolte poznámku,<br>
<br>
je fajn, jak Honza dodal dva návrhy. Tipuju, že ten druhý je čitelnější pro<br>
začátečníky, je takový imperativní. :-)<br>
<br>
Doporučoval bych však zkusit pochopit eleganci toho druhého, který je IMO<br>
přístupnější pro zkušené a otevírá trochu jiný svět uvažování.<br>
<br>
Čitelnosti by pomohlo rozdělení na dva řádky (nejdřív nazvat generátor),<br>
což jistě Honza ví.<br>
<br>
Pokud tazateli zároveň půjde o zachování pořadí prvků, může se podívat po<br>
typu OrderedSet (<a href="http://code.activestate.com/recipes/576694/" target="_blank">http://code.activestate.com/<u></u>recipes/576694/</a>).<br>
<br>
Vl.<br>
<br>
On 6.2.2015 20:50, Honza Král wrote:<br>
> tohle je kratka odpoved:<br>
><br>
> import operator<br>
> reduce(operator.and_, (set(l) for l in (list_a, list_b, list_c) if l))<br>
><br>
> ale asi ne nejlepsi (neni prilis citelna)<br>
><br>
><br>
> doporucil bych spis neco jako:<br>
><br>
> sets = [set(l) for l in (list_a, list_b, ..) if l]<br>
><br>
> result =lists.pop()<br>
><br>
> for s in sets:<br>
> result &= s<br>
> list_vysledny = list(result)<br>
><br>
><br>
> Honza Král<br>
> E-Mail: <a href="mailto:honza.kral@gmail.com" target="_blank">honza.kral@gmail.com</a><br>
> Phone: +420 606 678585<br>
><br>
><br>
> 2015-02-06 20:10 GMT+01:00 Marcus Scalpere <<a href="mailto:marcus.scalpere@gmail.com" target="_blank">marcus.scalpere@gmail.com</a>>:<br>
>> Pěkný večer vinšuji,<br>
>> 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.<br>
>> Něco jako:<br>
>> list_a = []<br>
>> list_b = [x, y, z]<br>
>> list_c = [x, y]<br>
>> .<br>
>> .<br>
>> .<br>
>> list_vysledny = [x, y]<br>
>><br>
>> Snad jsem se vyjádřil jasně a srozumitelně. Děkuji mnohokráte<br>
<br>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:python@py.cz" target="_blank">python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/<u></u>listinfo/python</a><br>
<br>
Visit: <a href="http://www.py.cz" target="_blank">http://www.py.cz</a><br>
</blockquote></div>