CoCalc -- Collaborative Calculation in the Cloud
SharedSage genom exempel / Ordlistor_och_tupler.sagewsOpen in CoCalc

Ordlistor och tupler

En tupel är en lista som inte kan ändras. Till skillnad från hakparentes för listor används vanlig parentes.
t = (1, 2, 3, 'abc', (5, 6))
På samma sätt som med listor kan vi komma åt elementen genom att specificera index.
t[2]
3
t[1:5:2]
(2, 'abc')
t[-1]  # sista elementet, som är en tupel
(5, 6)
t[-1][1]  # andra elementet i deltupeln
6
För att ändra i en tupel måste man skapa en ny, där man väljer ut de element i den gamla tupeln som man vill behålla och konkaternera med den nya tupeln.
s = t[:2] + (987, 'Sage') + t[4]
s
(1, 2, 987, 'Sage', 5, 6)
En ordlista (eng. dictipnary) är en lista av element där varje element indexeras med en nyckel. Varje post i en ordlista har formen nyckel:värde. En ordlista kan explicit matas in oc då ska uppräkningen av poster omges av klammerparentes.
udda = {1:'ett', 3:'tre', 5:'fem'}
Man använder nyckel för att hänvisa till motsvarande värde.
sve[3]
'tre'
För att lägga till element i en ordlista använder man funktionen update.
udda.update({5:'FEM', 7:'sju', 9:'nio'})
udda  # notera att även funktione ändrar ett existerande element (nyckel = 5)
{1: 'ett', 3: 'tre', 5: 'FEM', 7: 'sju', 9: 'nio'}
Operatorn del raderar en post i en ordlista.
del udda[5]
udda
{1: 'ett', 3: 'tre', 7: 'sju', 9: 'nio'}
Man kan också konstruera en ordlista med funktionen dict, vilken tar en lista av par (tupel) som indata.
matematiker = dict([('Euler', (1707, 1783)), ('Gauss', (1777, 1855)), ('Riemann', (1826, 1866)), ('Shannon', (1916, 2001))])
matematiker
{'Shannon': (1916, 2001), 'Gauss': (1777, 1855), 'Euler': (1707, 1783), 'Riemann': (1826, 1866)}
matematiker['Gauss']
(1777, 1855)
Vilka nycklar finns i en ordlista?
udda.keys()
[1, 3, 7, 9]
matematiker.keys()
['Shannon', 'Gauss', 'Euler', 'Riemann']
Vilka värden finns i en ordlista?
udda.values()
['ett', 'tre', 'sju', 'nio']
matematiker.values()
[(1916, 2001), (1777, 1855), (1707, 1783), (1826, 1866)]
Innehåller en ordlista en viss nyckel?
matematiker.has_key('Pythagoras')
False
Töm en ordlista.
matematiker.clear()
matematiker
{}