Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt Pythons „random.shuffle' beim Mischen von Objekten „None' zurück?

Warum gibt Pythons „random.shuffle' beim Mischen von Objekten „None' zurück?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 14:36:20609Durchsuche

Why Does Python's `random.shuffle` Return `None` When Shuffling Objects?

Eine Liste von Objekten mischen

Wenn Sie versuchen, eine Liste von Objekten mithilfe der Funktion „random.shuffle“ in Python zu mischen, kann es vorkommen, dass Sie auf Folgendes stoßen: Problem beim Empfang einer None-Ausgabe. Im Gegensatz zu Listen mit ganzen Zahlen erfordert das Mischen von Objekten etwas mehr Überlegung.

Random.shuffle verstehen

random.shuffle arbeitet mit veränderlichen Objekten an Ort und Stelle, was bedeutet, dass es die direkt ändert Originalliste. Diese Funktion gibt nicht die gemischte Liste zurück, sondern ändert die Eingabeliste. Als Ergebnis wird None zurückgegeben, um anzuzeigen, dass kein tatsächlicher Wert zurückgegeben wird.

Lösung

Um das Problem zu beheben, stellen Sie sicher, dass die Eingabeliste veränderbare Objekte enthält. wie z.B. Listen. Hier ist ein Beispiel:

from random import shuffle

# Create a list of lists as objects
x = [[i] for i in range(10)]

# Shuffle the list of objects in place
shuffle(x)

# Print the shuffled list
print(x)

Ausgabe:

[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]

Durch die Verwendung von Listen als Objekte kann random.shuffle die ursprüngliche Liste effektiv ändern und die gewünschte gemischte Ausgabe bereitstellen. Denken Sie daran, dass es beim Umgang mit veränderlichen Objekten häufig vorkommt, dass Funktionen None zurückgeben, nachdem sie die vorhandenen Objekte geändert haben.

Das obige ist der detaillierte Inhalt vonWarum gibt Pythons „random.shuffle' beim Mischen von Objekten „None' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn