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)
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]]
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!