1. Feladat

Listák - I.

Galileo Galilei egyik gondolatát küdték el nekünk SMS-ben, de sajnos hálózati hiba miatt nem sorrendben érkeztek meg a szavak. A következőt olvastuk a telefonunkban:

In [1]:
sms=['Szentírás ', 'bölcs ', 'a ', 'már ', 'szükséges ', 'mondhat ', 'biztosak ', 'a ', 
     'feladata, ', 'Mivel ', 'ellent ', 'a ', 'érzéki ', 'azokkal ', 'következtetésekkel, ',
     'a ', 'vagyunk ', 'a ', 'tapasztalataink ', 'szöveg ', 'azon ', 'igazság ', 'sose ',
     'ami ', 'hogy ', 'melyekben ', 'kísérletek ', 'megtalálják ', 'által.', 'két ', 'fizikai ',
     'egymásnak, ', 'egyezik ', 'és ', 'értelmezőinek ', 'értelmezését, ']

Később a telefonszolgáltató megtalálta a hiba okát, és elküldte, hogy milyen sorrendben kaptuk meg az eredeti szöveg szavait:

In [2]:
sorrend=[8,9,15,26,33,4,27,11,12,0,5,32,29,21,24,22,28,7,30,16,17,2,3,19,13,25,34,14,35,1,23,6,20,31,10,18]

Azaz az általunk megkapott első szó az eredeti szövegben a 8-as indexet viselte, azaz a 9. volt.

Írj egy olyan programot, ami helyreállítja az idézetet, valamint össze is fűzi a lista elemeit egy mondattá.

Megoldás

Először, létrehozunk egy üres listát, ebbe, fogjuk belepakolni a szavakat a jó sorrendben:

In [3]:
ujsms = list()

Ehhez, ezután hozzáadjuk a szavakat a megfelelő sorrendben.

In [4]:
for i in range(0, len(sms)):            # Az ujsms i. elemét for-ciklus segítségével választjuk ki.
    ujsms += [sms[sorrend.index(i)]]    # Az ujsms lista i indexű elemének indexe az sms listában megegyezik a i indexével a sorrend listában.

Végül pedig az ujsms lista szavait sorban beírjuk egy string-be, amit már gond nélkül elolvashatunk

In [5]:
text = ""                # Először létrehozunk egy üres stringet.
for s in ujsms:          # Majd egy for-ciklussal végigmegyünk az ujsms elemein...
    text += (s + " ")    # amiket hozzáadunk a már meglévő szöveghez, szóközzel elválasztva.
text[:-1]                # Végül kiíratjuk. (Mivel a for-ciklus az utolsó szó után is tett szóközt, azza nem vagyunk kíváncsiak)
Out[5]:
'Mivel  két  igazság  sose  mondhat  ellent  egymásnak,  a  Szentírás  bölcs  értelmezőinek  a  feladata,  hogy  megtalálják  a  szöveg  azon  értelmezését,  ami  egyezik  azokkal  a  fizikai  következtetésekkel,  melyekben  már  biztosak  vagyunk  érzéki  tapasztalataink  és  a  szükséges  kísérletek  által.'