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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nyfel
User
Beiträge: 2
Registriert: Dienstag 26. November 2019, 14:59

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 ^^
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

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])
In specifications, Murphy's Law supersedes Ohm's.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und pillmuncher zeigt was ich meine ;) 👍🏻
Nyfel
User
Beiträge: 2
Registriert: Dienstag 26. November 2019, 14:59

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 :)
Benutzeravatar
ThomasL
User
Beiträge: 1379
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

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)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Antworten