Seite 1 von 1

Modul Random

Verfasst: Donnerstag 30. August 2018, 08:37
von Whatgewesen
Hallo zusammen,

ich habe eine Frage. Angenommen ich habe eine Liste mit vier Elementen erstellt und möchte mir dann genau zwei davon zufällig in eine neue Variable speichern und die "zwei nicht zufälligen" in eine andere. Geht das , dass er erkennt, welche zwei Elemente der Liste durch Zufall ausgewählt wurde? Und könntet ihr mir auch die dazugehörige Funktion sagen, die das möglich macht.

Danke und Beste Grüße

Re: Modul Random

Verfasst: Donnerstag 30. August 2018, 08:42
von nezzcarth
Das kann man zum Beispiel mit random.sample und dem Set-Datentyp leicht lösen:

Code: Alles auswählen

In [1]: from random import sample

In [2]: items = set(range(20))

In [3]: random_items = set(sample(items, 5))

In [4]: rest = items - random_items

In [5]: items
Out[5]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}

In [6]: random_items
Out[6]: {3, 9, 13, 16, 17}

In [7]: rest
Out[7]: {0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 14, 15, 18, 19}
Statt sich irgendwie etwas zu merken, ist es einfacher, mit getrennten Mengen zu arbeiten.

Re: Modul Random

Verfasst: Donnerstag 30. August 2018, 08:43
von __deets__
ich würde random.shuffle machen & die Liste in zwei Hälften teilen.

Re: Modul Random

Verfasst: Donnerstag 30. August 2018, 19:32
von narpfel
Die `set`-Lösung hat zusätzlich das Problem, dass es keine mehrfach vorkommenden Zahlen geben darf.

Re: Modul Random

Verfasst: Donnerstag 30. August 2018, 21:08
von Whatgewesen
Danke @alle