Rendezés I.

Stringek, listák és vektorok elemeit egyaránt rendezhetjük a sorted() függvénnyel; eredményként minden esetben (értelemszerűen rendezett) listát kapunk:

>>> str= '3742446162'
>>> srt= sorted(str)
>>> srt
['1', '2', '2', '3', '4', '4', '4', '6', '6', '7']

>>> lst= [37, 42, 44, 61, 62, ]
>>> srt= sorted(lst)
>>> srt
[37, 42, 44, 61, 62]

>>> tpl= (37, 42, 44, 61, 62, )
>>> srt= sorted(tpl)
>>> srt
[37, 42, 44, 61, 62]

Felhasználva a fentieket a Lottó című feladat megoldásához (inf_e_20050519_m_04):

print('1. feladat')

n1= int(input('Kérem az 52. hét 1. lottószámát: '))
n2= int(input('Kérem az 52. hét 2. lottószámát: '))
n3= int(input('Kérem az 52. hét 3. lottószámát: '))
n4= int(input('Kérem az 52. hét 4. lottószámát: '))
n5= int(input('Kérem az 52. hét 5. lottószámát: '))

print('2. feladat')

srt= sorted((n1, n2, n3, n4, n5))
print('Az 52. hét lottószámai emelkedő számsorrendben: ', srt[0], ', ', srt[1], ', ', srt[2], ', ', srt[3], ', ', srt[4], sep='')

Figyeljük meg a sorted() függvény zárójelei között megadott (további) zárójelpárt: így állítunk elő az öt számból egy vektort, melyet aztán egyetlen argumentumként kap meg a függvény.

Az adatok tárolását listával, a beolvasást, kiírást ciklussal végezve:

print('1. feladat')

lst= []
for i in range(5):
    lst+= [int(input('Kérem az 52. hét ' + str(i+1) + '. lottószámát: '))]

print('2. feladat')

srt= sorted((n1, n2, n3, n4, n5))
print('Az 52. hét lottószámai emelkedő számsorrendben:', end=' ')
for n in srt[:-1]:
    print(n, end=', ')
print(srt[-1])

A kiírás során ügyelnünk kellett az egy alapú számozásra, s mivel az input utasítás csak egy argumentumot kaphat, a sorszám típuskonverziója után összefűztünk három kiírandó stringet. Végül vegyük észre, hogy az utolsó elemet külön kellett kiírnunk, hogy a korábbiak után álló vessző ebben az esetben már ne jelenjék meg.