Moniulotteiset listat Pythonissa
Listan elementit eivät voi olla vain
merkkijonoja ja numeroita, vaan myös listoja. Tässä
tapauksessa tällaista listojen listaa kutsutaan
moniulotteiseksi. Seuraavassa esimerkissä
lista lst koostuu kolmesta elementistä,
joista jokainen on lista:
lst = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
]
Riippuen sisäkkäisyystasosta listat voivat olla kaksiulotteisia - listojen lista, kolmiulotteisia - listojen listojen lista (ja niin edelleen - neliulotteisia, viisiulotteisia jne.).
Yllä oleva lista on kaksiulotteinen, koska yhden listan sisällä on muita alilistoja, joissa ei ole muita listoja. Tulostaaksesi minkä tahansa elementin kaksiulotteisesta listasta, sinun tulee kirjoittaa ei enää yksi hakasulkupari, vaan kaksi:
print(lst[0][1]) # tulostaa 'b'
print(lst[1][2]) # tulostaa 'f'
Myös moniulotteisissa listoissa voi olla muita iteroitavia objekteja, esimerkiksi sanakirjoja, joukkoja ja tupleja. Muutetaan listan toinen elementti sanakirjaksi:
lst = [
['a', 'b', 'c'],
{'d': 1, 'e': 2, 'f': 3},
['g', 'h', 'i'],
]
Saadaksesi sanakirjan elementin, sinun tulee ensin päästä itse sanakirjaan käyttämällä ensimmäisiä hakasulkuja. Sen jälkeen toisissa hakasuluissa määritämme sanakirjan avaimen:
print(lst[1]['d']) # tulostaa 1
Annettu lista:
lst = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
Tulosta siitä luvut 2, 4
ja 8.
Annettu lista:
lst = [
['a', 'b'],
{'c': 1, 'd': 2},
{'e': 3, 'f': 4}
]
Tulosta siitä luvut 1, 3.