Heim >Backend-Entwicklung >Python-Tutorial >Warum gibt Pythons „random.shuffle()' „None' zurück und wie kann ich es richtig verwenden?

Warum gibt Pythons „random.shuffle()' „None' zurück und wie kann ich es richtig verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-19 00:19:11588Durchsuche

Why Does Python's `random.shuffle()` Return `None` and How Can I Use It Correctly?

Mischen einer Liste von Objekten

Problem:

Beim Versuch, eine Liste von Objekten mit dem zu mischen, können Fehler auftreten random.shuffle()-Funktion. Das erwartete Mischverhalten scheint nicht aufzutreten und die Funktion gibt stattdessen None aus.

Lösung:

Um eine Liste von Objekten effektiv zu mischen, verwenden Sie die Funktion shuffle( ) Funktion aus dem Zufallsmodul as folgt:

from random import shuffle

objects = [obj1, obj2, obj3]  # initialize the list of objects
shuffle(objects)  # shuffle the objects in place

Erklärung:

Im Gegensatz zu einigen anderen Programmiersprachen arbeitet random.shuffle() in Python an Ort und Stelle, was bedeutet, dass es die ursprüngliche Liste ohne ändert ein neues zurückschicken. Darüber hinaus ist es in Python üblich, dass Funktionen „None“ zurückgeben, wenn die Mutation von Objekten beabsichtigt ist.

Beispielcode:

from random import shuffle

x = [[i] for i in range(10)]
shuffle(x)
print(x)

Dadurch wird die Liste der Listen x gemischt und drucken Sie das gemischte Ergebnis aus.

Hinweis:

Es ist Es ist wichtig zu bedenken, dass shuffle() die ursprüngliche Liste ändert, sodass nachfolgende Vorgänge oder Zugriffe auf die Liste die von shuffle() vorgenommenen Änderungen widerspiegeln.

Das obige ist der detaillierte Inhalt vonWarum gibt Pythons „random.shuffle()' „None' zurück und wie kann ich es richtig verwenden?. 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