Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `random.shuffle()` Python Mengembalikan `Tiada`?

Mengapakah `random.shuffle()` Python Mengembalikan `Tiada`?

Mary-Kate Olsen
Lepaskan: 2024-11-26 14:31:10
asal
869 orang telah melayarinya

Why Does Python's `random.shuffle()` Return `None`?

Mengocok Senarai dalam Python: Membongkar Enigmatic None Return

Apabila menyelidiki kedalaman modul rawak Python, seseorang mungkin tersandung pada tingkah laku yang membingungkan random.shuffle( ). Bertentangan dengan jangkaan, fungsi ini nampaknya mengembalikan nilai Tiada halus selepas kononnya merombak senarai. Untuk merungkai teka-teki ini, mari kita mulakan perjalanan ke dalam kerja dalaman random.shuffle.

Sebuah Urusan Di Tempat

Bertentangan dengan konvensyen mengembalikan struktur data yang diubah suai, random.shuffle () memilih jalan yang lebih misteri. Ia mengubah senarai yang digunakan secara senyap, tanpa sebarang bukti nyata tindakannya. Pengubahsuaian halus ini, yang dikenali sebagai "pengubahsuaian di tempat", merupakan ciri utama banyak kaedah API Python yang mengubah suai struktur data. Oleh itu, random.shuffle() mengembalikan Tiada, meninggalkan senarai yang dikocok tanpa sebarang pengesahan yang jelas.

Menyaksikan Kocok

Untuk menyaksikan kerja random.shuffle(), pertimbangkan perkara berikut kod:

x = ['foo', 'bar', 'black', 'sheep']
from random import shuffle
random.shuffle(x)
print(x)
Salin selepas log masuk

Melaksanakan kod ini akan mencetak senarai yang dikocok, mendedahkan hasil kerja halimunan random.shuffle().

Mencipta Senarai Kocok Baharu

Walau bagaimanapun, jika keinginan anda bukan semata-mata untuk menyaksikan perubahan senarai tetapi untuk mencipta senarai baru yang dikocok , jalan lain menanti anda. Random.sample() sedia untuk disiarkan, menyediakan cara untuk menjana salinan kocok senarai sedia ada sambil membiarkan yang asal tidak disentuh:

shuffled_x = random.sample(x, len(x))
Salin selepas log masuk

Sebagai alternatif, sorted() digabungkan dengan tawaran random.random() laluan lain ke senarai yang dikocok, walaupun dengan kos pengiraan:

shuffled_x = sorted(x, key=lambda k: random.random())
Salin selepas log masuk

Kedua-dua pendekatan menghasilkan salinan senarai anda yang dikocok, membolehkan anda memanipulasi senarai baharu tanpa mengganggu senarai asal.

Kesimpulan

Gelagat pelik fungsi random.shuffle() mungkin pada mulanya menimbulkan kerisauan, tetapi memahami sifat pengubahsuaian di tempatnya dan meneroka pendekatan alternatif untuk mencipta senarai dikocok baharu memperkasakan anda untuk memanfaatkan sihir rawaknya dengan berkesan.

Atas ialah kandungan terperinci Mengapakah `random.shuffle()` Python Mengembalikan `Tiada`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan