Listák és szeletelésük

Ha a lista elemeit felsorolással adjuk meg, az utolsó után is tehetünk vesszőt:

>>> lst= ['Semé', 'Noéé', 'Lámekhé', 'Mathuséláé', 'Énókhé', 'Járedé', 'Mahalaléelé', 'Kajnáné', 'Énósé', 'Sethé', 'Ádámé', ]

A lista egésze is kiíratható:

>>> lst
['Semé', 'Noéé', 'Lámekhé', 'Mathuséláé', 'Énókhé', 'Járedé', 'Mahalaléelé', 'Kajnáné', 'Énósé', 'Sethé', 'Ádámé']

A listák a stringekhez hasonlóan indexelhetők, illetve szeletelhetők:

>>> lst[0]
'Semé'
>>> lst[-1]
'Ádámé'
>>> lst[0:-1]
['Semé', 'Noéé', 'Lámekhé', 'Mathuséláé', 'Énókhé', 'Járedé', 'Mahalaléelé', 'Kajnáné', 'Énósé', 'Sethé']

Stringek esetében az indexelés és a szeletelés adott esetben azonos eredményt ad:

>>> str[0]
'k'
>>> str[0:1]
'k'

Listák esetében az analóg eljárás különböző eredményt ad:

>>> lst[0]
'Semé'
>>> lst[0:1]
['Semé']

Lépésköz

A stringeknél látott módon megadhatjuk, hogy a kezdőértéktől minden k-adik kerüljön csak az eredménybe:

>>> lst[::4]
['Semé', 'Énókhé', 'Énósé']
>>> lst[1::4]
['Noéé', 'Járedé', 'Sethé']
>>> lst[2::4]
['Lámekhé', 'Mahalaléelé', 'Ádámé']

Listák közötti értékadás

Nehezen emészthető, de jobb az elején tisztázni: a python megkülönböztet sekély és mély másolatot:

>>> shallow_copy= lst[:]
>>> deep_copy=    lst
>>> lst[0]= 'Sémé'
>>> shallow_copy
['Semé', 'Noéé', 'Lámekhé', 'Mathuséláé', 'Énókhé', 'Járedé', 'Mahalaléelé', 'Kajnáné', 'Énósé', 'Sethé', 'Ádámé']
>>> deep_copy
['Sémé', 'Noéé', 'Lámekhé', 'Mathuséláé', 'Énókhé', 'Járedé', 'Mahalaléelé', 'Kajnáné', 'Énósé', 'Sethé', 'Ádámé']