Pythonuppgift 3.2
Skriv lösningarna till uppgifterna i en och samma fil och testa koden själv innan du använder rättningsskriptet. Att kunna testa sin kod är en viktig del av att programmera!
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.
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: 2023-01-15