Az SMS szavak című feladat negyedik lépésében ki kell választanunk egy lista leghosszabb szavát. Nincs jelentősége annak, hogy ezt a lista melyik helyén találjuk meg, így iterálhatunk érték szerint.
A klasszikus megoldás tehát:
_(4)
maxw= ''
for word in l_wds:
if len(word)>len(maxw):
maxw= word
print('A leghosszabb tárolt szó: ', maxw, '; ennek hossza: ', len(maxw), ' karakter.', sep= '')
Maximumot azonban a python nyelv max() függvényével is kereshetünk (minimumot ennek megfelelően a min() függvénnyel): ezek argumentuma –éppen úgy mint a rendezés esetén– lehet például string, lista vagy vektor.
Mivel az argumentumlista túl hosszú, a sort a \ karakterrel félbeszakítjuk, aztán folytatjuk; emlékeztetünk egyúttal az ékezetes betűk problémájára is:
>>> max('nyugotifelsőszombatfalva')
'ő'
>>> max(['izsa', 'bazsi', 'balázs', 'balázsd', 'alsózsid',\
... 'alsójózsa', 'balázsszeg', 'alsópozsgás', 'alsógörzsöny', 'balatonbozsok',\
... 'alsószelezsény', 'almásbalázsháza', 'felsőbalázsfalva', 'alsószenterzsébet', 'zsilymaczesdparoseny'])
'zsilymaczesdparoseny'
E függvények argumentumai között azonban azt is megadhatjuk, hogy milyen függvény határozza meg a rendezendő elemek sorrendjét:
>>> min(['izsa', 'bazsi', 'balázs', 'balázsd', 'alsózsid',\ ... 'alsójózsa', 'balázsszeg', 'alsópozsgás', 'alsógörzsöny', 'balatonbozsok',\ ... 'alsószelezsény', 'almásbalázsháza', 'felsőbalázsfalva', 'alsószenterzsébet', 'zsilymaczesdparoseny'],\ ... key= len) 'izsa'
Ezek után az előző lépés más megoldása:
_(4)
maxw= max(l_wds, key=len)
print('A leghosszabb tárolt szó: ', maxw, '; ennek hossza: ', len(maxw), ' karakter.', sep= '')
Az ötödik lépésben kért megszámoláshoz nincs szükségünk új ismeretre:
_(5)
n_shw= 0
for word in l_wds:
if len(word)<=5:
n_shw+= 1
print('A rövid szavak száma:', n_shw)