Seite 1 von 1

Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 15:09
von Nyfel
Hey,
ich versuche mir gerade durch Foren und Tutroials etc. die Programmiersprache Python beizubringen. Allerdings konnte ich für mein Projekt nirgendwo herausfinden, wie ich etwas aus einer Liste entferne ohne zu wissen, was ich entfernen möchte. (Also der Befehl Liste.remove(x) ist mir bekannt, hilft mir aber nicht)

Mein Beispiel:

Code: Alles auswählen

import random
Teams =  ["1", "2", "3", "4", "5", "6", "7", "8"]
Gruppe1 = random.sample(Teams, 4)
Gruppe2 = random.sample(Teams, 4)
print(Gruppe1)
print(Gruppe2)
Mein Ziel ist es halt, das die Teams 1-8 in die Gruppen 1-2 verteilt werden. Allerdings erhalte ich logischerweise immer Dopplungen, da die Liste nach dem ersten Mal nicht so verändert wird, dass die Teams in der Gruppe1 aus der Liste entfernt werden. Ich hoffe das war verständlich...

Danke schonmal im Vorraus ^^

Re: Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 15:25
von pillmuncher

Code: Alles auswählen

>>> import random
>>> xs = [1, 2, 3, 4, 5, 6, 7, 8]
>>> random.shuffle(xs)
>>> xs
[4, 3, 1, 7, 2, 6, 5, 8]
>>> xs[:4], xs[4:]
([4, 3, 1, 7], [2, 6, 5, 8])

Re: Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 15:25
von __deets__
Es gibt viele Wege nach Rom. Einer: mit einer Kopie der Liste einfach random.shuffle aufrufen. Aus dem Ergebnis dann einfach die erste und zweite Hälfte holen, das sind deine beiden verwürfelten disjunkten Listen.

Re: Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 15:26
von __deets__
Und pillmuncher zeigt was ich meine ;) 👍🏻

Re: Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 15:37
von Nyfel
Super, vielen Dank für die schnelle Antwort. Ich hatte das random.shuffle und das teilen sogar schonmal gesehen in Tutorials. Allerdings kam mir nicht in Sinn das zu verbinden... Hab ich auch ehrlich gesagt nicht mehr dran gedacht!

Vielen Dank auf jeden Fall :)

Re: Vier zufällig gewählte Items aus einer Liste entfernen?!

Verfasst: Dienstag 26. November 2019, 21:12
von ThomasL
Wie bereits erwähnt gibt es viele Wege.
Einer davon bemüht die Datenstruktur sets

Code: Alles auswählen

import random
Teams =  set(["1", "2", "3", "4", "5", "6", "7", "8"])
Gruppe1 = set(random.sample(Teams, 4))
Gruppe2 = Teams - Gruppe1
print(Gruppe1)
print(Gruppe2)