Set i Python

Set kræver sin helt egen gennemgang, fordi de adskiller sig ved, at de ikke kan indeholde ens elementer. Det betyder at vi kan anvende sets til at arbejde med mængder.

Forestil dig følgende 2 datasæt, hvor man har spurgt i 2 grupper hvilken frugt de bedst kan lide.

Gruppe 1
  • æble
  • pære
  • banan
  • appelsin
Gruppe 2
  • æble
  • mango
  • pære
  • jordbær

Sat op i et venn-diagram ser det sådan her ud:

Mængder

Vi starter med at indtaste begge mængder som set. Du skal huske at det skal gøres med krøllede parenteser.

>>> gruppe_1 = {"æble","pære","banan","appelsin"}
>>> gruppe_2 = {"æble","mango","pære","jordbær"}
>>> gruppe_1
{'appelsin', 'pære', 'æble', 'banan'}
>>> gruppe_2
{'æble', 'pære', 'mango', 'jordbær'}

Foreningsmængden

Foreningsmængde : Alle de forskellige elementer der er mængderne.

Foreningsmængden finder du ved at bruge .union()

>>> gruppe_1.union(gruppe_2)
{'appelsin', 'banan', 'mango', 'jordbær', 'pære', 'æble'}

Fællesmængde

Fællesmængden : De elementer mængderne har til fælles.

Fællesmængden finder du ved at bruge .intersection().

>>> gruppe_1.intersection(gruppe_2)
{'æble', 'pære'}

Mængdedifferens

Mængdedifferens : De elementer som er unikke for en mængde.

Mængdedifferensen findes ved at bruge .difference()

Her finder vi de elementer der er i gruppe 1, men som ikke er i gruppe 2:

>>> gruppe_1.difference(gruppe_2)
{'appelsin', 'banan'}

Og her det modsatte:

>>> gruppe_2.difference(gruppe_1)
{'mango', 'jordbær'}

Kode: gruppe_1.difference(gruppe_2)

Kode : gruppe_2.difference(gruppe_1)

Symetrisk differens

Symetrisk differens : Alle de elementer som mængderne ikke har tilfælles.

Den symetriske differens finder du ved at bruge .symmetric_difference()

Her er det de elementer der er i gruppe 1, men som ikke er i gruppe 2

>>> gruppe_1.symmetric_difference(gruppe_2)
{'appelsin', 'banan', 'mango', 'jordbær'}

Delmængde

Delmængde : Alle elementer i en gruppe er elementer i en anden gruppe

Ægte delmængde : Alle elementer i en gruppe er elementer i en anden gruppe og den anden gruppe har elementer der ikke tilhører den første

For at afgøre om en mængde er en delmængde af den anden, skal du bruge .issubset()

Her har jeg oprettet to set med tal

>>> A = {1,2}
>>> B = {1,2,3,4}

For at finde ud af om B er en delmængde af A skriver jeg:

>>> A.issubset(B)
True

A er altså en delmængde af B

Skriver jeg det modsatte får vi værdien False, fordi 4 ikke er en del af A.

>>> B.issubset(A)
False

A er altså en ægte delmængde af B, fordi B også har flere elementer end der er i A.

Konvertering af lister

Forstil dig at vi havde spurgt en hel klasse om hvilken frugt de bedst kunne lide. Det ville måske give dette datasæt med 30 svar:

klasse = [
	"æble",
	"pære",
	"banan",
	"appelsin",
	"æble",
	"jordbær",
	"æble",
	"pære",
	"æble",
	"mango",
	"pære",
	"jordbær",
	"æble",
	"pære",
	"banan",
	"appelsin",
	"æble",
	"mango",
	"æble",
	"pære",
	"æble",
	"mango",
	"pære",
	"jordbær"
	]

Hvis vi kun er interesseret i hvilke forskellige frugt klasse kan lide, så kan vi konvertere listen til et set.

>>> klasse_frugt = set(klasse)
>>> klasse_frugt
{'æble', 'appelsin', 'jordbær', 'banan', 'pære', 'mango'}

Sets kan altså bruges til at skabe overblik og sortere dubletter fra.