Att lära dig från uppgifterna
- Bearbetning av nästlade-strukturer
Godkänt
För att få godkänt krävs 100 poäng. Försök dock att lösa alla uppgifter då inte alla fel upptäcks av rättningsskriptet men om ni har lite marginal kan ni kanske bli godkända även om assistenten som rättar hittar något sådant fel.
Uppgifter
Uppgift 3.2.1 (10p)
Skriv funktionen sum_of_ints2(value_list)
som tar in en lista med listor av
värden som argument. Funktionen ska returnera summan av alla heltal som finns i
de nästlade listorna.
Exempel: sum_of_ints2([["a", 1], [2, 3.0, "hej"]])
ska returnera 3
.
Uppgift 3.2.2 (10p)
Skriv funktionen flatten_list1(list_of_lists)
som får in en nästlad lista. De
inre listorna innehåller inga listor. Funktionen ska returnera en icke-nästlad
lista som innehåller alla värden i de inre listorna.
Om list_of_values
är [[1, 2], [3], [1, 2, 3]]
så ska funktionen returnera
listan [1, 2, 3, 1, 2, 3]
.
Uppgift 3.2.3 (20p)
Skriv funktionen flatten_list2(list_of_lists)
som får in en lista som både
innehåller listor och vanliga värden. De inre listorna innehåller dock inga
listor. Funktionen ska returnera en icke-nästlad lista som innehåller alla
värden i de inre listorna, samt värdena som ligger direkt i listan.
Om list_of_values
är [[1, 2], [3], 4, [1, 2, 3], 4, 5]
så ska funktionen
returnera listan [1, 2, 3, 4, 1, 2, 3, 4, 5]
.
Uppgift 3.2.4 (10p)
Skriv funktionen get_first_column(matrix)
som tar in en nästlad lista som
representerar en matris. Varje element i matrix
är alltså en lista som
representerar en rad i matrisen. Alla listor är lika långa. Se exemplet nedan.
|
|
Funktionen get_first_column(matrix)
ska returna en lista som innehåller
värdena i den första kolumnen i matrisen som en lista. För m1
ska alltså
listan [1, 3, 0]
returneras. För m2
ska [1, 3, 0]
returnaeras. För m3
ska [1, 3, 0, 4]
returneras.
Tips: För att komma åt det första elementet i den första
listan i m
definierad ovan, skriver man m[0][0]
. För att komma åt det tredje
elementet i den andra listan skriver man m[1][2]
.
Uppgift 3.2.5 (20p)
Skriv funktionen get_nth_column(n, matrix)
som tar in en nästlad lista som
representerar en matris. Varje element i matrix
är alltså en lista som
representerar en rad i matrisen. Alla listor är lika långa.
Funktionen get_nth_column(n, matrix)
ska returnera kolumnen n
, där den
första kolumnen har n == 1
.
Uppgift 3.2.6 (20p)
Skriv funktionen get_all_columns(matrix)
som tar in en nästlad lista som
representerar en matris. Varje element i matrix
är alltså en lista som
representerar en rad i matrisen. Alla listor är lika långa.
Funktionen get_all_columns(matrix)
ska returnera alla kolumner i matrisen
matrix
som en lista. Följande lista ska alltså returneras givet m1
som
definierad i uppgift 3.2.4:
|
|
Uppgift 3.2.7 (20p)
Skriv funktionen scalar_product(vec1, vec2)
som tar in två vektorer bestående
av listor och returnerar skalärprodukten för listorna. Båda listorna är lika
långa.
Skalärprodukten räknas ut enligt nedan:
$(1, 2, 4) \cdot (1, 3, 0) = 1 \times 1 + 2 \times 3 + 4 \times 0 = 7$
Exempel:
|
|
Uppgift 3.2.8 (25p)
Skriv funktionen matrix_square(matrix)
som ska returnera kvadraten av matrisen
matrix
. Varje element $a_{ij}$ i den nya matrisen fås av skalärprodukten av
rad $i$ med kolumn $j$.
Om vi använder oss av samma matris om i exemplet i uppgift 3.2.4
|
|
så är elementet på den första raden i den första kolumnen i den nya matrisen
skalärprodukten av den första raden i m
och den första kolumnen i m
.
Elementet på första raden, andra kolumnen är $(1, 2, 4) \cdot (2, 0, 5) = 22$
och så vidare. Den nya matrisen som matrix_square(matrix)
ska returnera givet
m
som input är alltså
|
|
Du får använda funktionerna du skrivit i tidigare uppgifter.
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 0001-01-01