Jak najít nejdelší text v seznamu – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Jak najít nejdelší text v seznamu – Python – Fórum – Programujte.comJak najít nejdelší text v seznamu – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Marko
~ Anonymní uživatel
4 příspěvky
25. 8. 2015   #1
-
0
-

 Ahoj, potřebuji zjistit nejdelší text v seznam['foo']['bar']

seznam                  = {}
seznam['foo']           = {}
seznam['foo']['bar']    = {}
seznam['foo']['bar'][0] = 'aaaaaaaaaa'
seznam['foo']['bar'][1] = 'bbbbbbbbbbbbbb'
seznam['foo']['bar'][2] = 'ccccccccccc'
seznam['foo']['bar'][3] = 'ddddddddddddddd'
seznam['foo']['bar'][4] = 'eeeeeeeeeeeeeeeee'
seznam['foo']['bar'][5] = 'fffffffffffffffffff'

zkoušel jsem to takto ale nejde mi to :-( 

print(max(seznam['foo']['bar'], key=len))

poradí někdo ? Děkuji

Nahlásit jako SPAM
IP: 95.173.86.–
Reklama
Reklama
KIIV+42
God of flame
25. 8. 2015   #2
-
+1
-
Zajímavé

Zda se, ze to aplikuje na ten klic ne na jeho hodnotu

seznam                  = {}
seznam['foo']           = {}
seznam['foo']['bar']    = ['aaaaaaaaaa', 'bbbbbbbbbbb', 'cccccc', 'dddddddddddddddd']
print(max(seznam['foo']['bar'], key=len))
>>> dddddddddddddddd
Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondrej39+1
Věrný člen
25. 8. 2015   #3
-
0
-

#1 Marko
Zkoušel jsi i klasický foreach namísto předávání funkci max přímo seznam?

Nahlásit jako SPAM
IP: 79.141.243.–
Inject all the dependencies!
KIIV+42
God of flame
25. 8. 2015   #4
-
0
-

Ale nasel jsem toto:

print(max(seznam['foo']['bar'].itervalues(), key=len))
Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
gcx110
Návštěvník
26. 8. 2015   #5
-
0
-

#1 Marko
A co tohle? Jelikož ten kód Ti vrací index pod kterým je to uloženo

print(seznam["foo"]["bar"][max(seznam["foo"]["bar"])])
Nahlásit jako SPAM
IP: 46.23.54.–
KIIV+42
God of flame
26. 8. 2015   #6
-
+1
-
Zajímavé

#5 gcx11
 

seznam                  = {}
seznam['foo']           = {}
seznam['foo']['bar']    = {}
seznam['foo']['bar'][0] = 'aaaaaaaaaa'
seznam['foo']['bar'][1] = 'bbbbbbbbbbbbbb'
seznam['foo']['bar'][2] = 'ccccccccccc'
seznam['foo']['bar'][3] = 'dddddddddd'
seznam['foo']['bar'][4] = 'eeeeeeee'
seznam['foo']['bar'][5] = 'ffffff'

print(seznam["foo"]["bar"][max(seznam["foo"]["bar"])])

Ze neuhodnes, co to vrati? :D

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
gcx110
Návštěvník
26. 8. 2015   #7
-
+1
-
Zajímavé

#6 KIIV
Aha, tak ono to vrací největší index. Tvoje řešení je nejlepší, ale metoda itervalues je jenom v Pythonu 2.X
 

print(max(seznam["foo"]["bar"].values(), key=len))
Nahlásit jako SPAM
IP: 46.23.54.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý