Pythonuppgift 1.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
- Förstå vad en lista är och hur de används.
- Förstå begreppet slicing
- Förstå skillnaden mellan att skapa en ny lista och modifiera en existerande
Godkänt
För att få godkänt krävs 70 poäng.
Uppgift 1.2.1 (5p per deluppgift)
Listor är en datatyp i Python som hanterar ordnade sekvenser av värden. Man kan både läsa och ändra ett värde på en specifik plats i en lista med hjälp av platsens index.
- a) Skriv en funktion
second_in_list(values)
som tar in en lista som argument och returnerar det andra elementet i listan. - b) Skriv en funktion
last_in_list(values)
som tar in en lista som argument och returnerar det sista elementet i listan. - c) Skriv en funktion
second_last_in_list(values)
som tar in en lista som argument och returnerar det näst sista elementet i listan. - d) Skriv en funktion
n_in_list(values, n)
som tar in en lista och ett tal som argument och returnerar elementet på index n i listan
Namngivning: Namnen på variabler är viktiga för läsbarheten hos källkod. Om du har en lista är det förmodligen för att du kommer använda flera värden. En bra regel att följa är därför att döpa variabler som refererar till listor till ett substantiv i plural, där substantivet är en bra beskrivning på innehållet i listan.
Uppgift 1.2.2 (10p per deluppgift)
Ofta är man inte intresserad av att plocka ut ett värde i en lista utan man vill plocka ut delar av listan. Använd slice notation för att lösa nedanstående uppgifter. Se Common Sequence Operations.
- a) Skriv en funktion
three_first_in_list(values)
som tar in en lista som argument och returnerar de tre första elementen i listan. - b) Skriv en funktion
three_last_in_list(values)
som tar in en lista som argument och returnerar de tre sista elementeten i listan. - c) Skriv en funktion
but_five_last_in_list(values)
som tar in en lista som argument och returnerar allting förutom de 5 sista elementen i listan. - d) Skriv en funktion
every_other_in_list(values)
som tar in en lista som argument och returnerar vartannat element i listan (det vill säga elementen på index 0, 2, 4, 6, …). - e) Skriv en funktion
two_around_n_in_list(values, n)
som tar in en lista och ett heltal som argument och returnerar en lista som innehåller de två elementen före n, följt av elementet på indexn
och sist de två elementen efter index ´n´. Exempel: ´two_around_n_in_list([6, 7, 8, 9, 10, 11, 12], 3)´ ska alltså returnera ´[7, 8, 9, 10, 11]´
Uppgift 1.2.3 (10p)
Skriv en funktion new_list_with_n(values, n)
som tar in en lista
och ett element och returnerar en ny lista som innehåller samma element som
values
men där n
ligger sist.
Den ursprunliga listan får inte modifieras. Det vill säga, använd inte
metoden .append()
.
Exempel
|
|
Tips: Använd operatorn +
.
Uppgift 1.2.4 (10p)
Skriv en funktion append_n_to_list(values, a_value)
som tar in en lista och
ett element och ändrar listan values
så att a_value
ligger sist. Returnera
även den ändrade listan.
Exempel
|
|
Tips: Använd list-metoden .append()
. list.append()
Uppgift 1.2.5 (5p)
Skriv en funktion insert_4_on_pos_3(values)
som tar in en lista och
skjuter in heltalet 4
på index 3 i ursprungslistan. Elementen från och
med index 3 ska bli förskjutna med ett steg. Returnera den modifierade
listan.
Exempel:
|
|
Tips: Använd list-metoden .insert()
. list.insert()
Uppgift 1.2.6 (5p)
Skriv en funktion extend_vals_to_list(values1, values2)
som tar in två
listor och lägger elementen i values2
sist i values1
. Returnera den
ändrade listan.
Exempel
|
|
Tips: Använd list-metoden .extend()
. list.insert()
Uppgift 1.2.7 (5p)
Skriv en funktion remove_from_third_in_list(values)
som tar bort alla
element från och med element 3 i values
och returnerar den modifierade listan.
Tips: https://docs.python.org/3/tutorial/datastructures.html#the-del-statement
Exempel:
|
|
Uppgift 1.2.8 (5p)
Skriv en funktion concatenate_lists(values1, values2)
som tar två listor
och returnerar en ny lista som är en samanslagning av values1
och
values2
. Det vill säga först alla element i lista 1 följt av alla element
i lista 2. Du får inte modifiera values1
eller values2
.
Exempel:
|
|
Uppgift 1.2.9 (15p)
Python har en modul som innehåller färdiga funktioner som man kan använda när man vill ha med slumpen på något sätt i sin kod.
Importera modulen random
. Skriv funktionen select_random(values)
som
väljer ut ett slumpmässigt värde bland de som finns i listan values
och
returnera det. Använd funktionen random.choice()
.
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2023-01-15