Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `random.shuffle()` Python mengembalikan `None` dan bukannya senarai yang dikocok?

Mengapakah `random.shuffle()` Python mengembalikan `None` dan bukannya senarai yang dikocok?

DDD
Lepaskan: 2024-12-07 15:49:16
asal
186 orang telah melayarinya

Why does Python's `random.shuffle()` return `None` instead of the shuffled list?

Mengocok Senarai Objek

Tugas biasa dalam pengaturcaraan ialah mengocok senarai objek. Dalam Python, terdapat fungsi terbina dalam untuk ini: random.shuffle(). Walau bagaimanapun, tingkah lakunya boleh di luar jangkaan jika anda tidak biasa dengan nuansanya.

Soalan

Mengapa random.shuffle(), apabila dipanggil pada senarai objek, kembalikan Tiada dan bukannya yang dikocok list?

Jawapan

random.shuffle() mengubah suai senarai inputnya di tempatnya, bermakna ia tidak mencipta senarai baharu tetapi merombak elemen sedia ada senarai. Akibatnya, ia tidak mempunyai sebarang nilai untuk dikembalikan, oleh itu hasil Tiada. Tingkah laku ini konsisten dengan konvensyen Python untuk objek boleh ubah, di mana fungsi yang mengubah suainya biasanya tidak mengembalikan Tiada.

Contoh

Untuk menunjukkan perkara ini, pertimbangkan kod berikut:

from random import shuffle

l = [[i] for i in range(10)]
shuffle(l)
print(l)
Salin selepas log masuk

Kod mencipta senarai senarai dan mengocoknya menggunakan shuffle(). Mencetak senarai yang terhasil menunjukkan bahawa ia telah berjaya disusun semula:

[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
Salin selepas log masuk

Dalam contoh ini, random.shuffle() sememangnya mengubah suai senarai asal di tempatnya, mengembalikan Tiada.

Atas ialah kandungan terperinci Mengapakah `random.shuffle()` Python mengembalikan `None` dan bukannya senarai yang dikocok?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan