Panggil random.shuffle(list)_ untuk mengacak urutan elemen dalam daftar setelah mengimpor modul acak dengan import random. Ini mengocok daftar di tempat. Jika Anda perlu membuat daftar baru dengan elemen acak dan membiarkan yang asli tidak berubah, gunakan slicing list[:] untuk menyalin daftar dan memanggil fungsi acak pada daftar yang disalin
Bagaimana Cara Mengocok Daftar dengan Python?
Tonton video ini di YouTube
Masalah. Anda memiliki daftar Python dan ingin menyusun ulang semua elemen secara acak?
Larutan. Tidak masalah, gunakan pustaka random di Python
Contoh. Berikut beberapa kode untuk menunjukkan cara melakukannya
import random a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] random.shuffle(a) print(a) # [6, 8, 5, 7, 2, 3, 9, 1, 4, 0] random.shuffle(a) print(a) # [8, 4, 9, 2, 6, 3, 5, 7, 0, 1] random.shuffle(a) print(a) # [1, 0, 7, 2, 4, 9, 5, 8, 3, 6] random.shuffle(a) print(a) # [4, 6, 0, 5, 1, 3, 9, 2, 7, 8]Karena elemen disusun ulang secara acak, hasilnya akan terlihat berbeda saat Anda mengeksekusi cuplikan kode yang sama. Seperti fungsi acak lainnya, perilakunya tidak deterministik. Harap perhatikan juga bahwa daftar itu sendiri diacak—tidak ada daftar baru yang dibuat
Anda dapat mencobanya sendiri di shell Python interaktif berikut
Bagaimana Cara Mengocok dan Mengembalikan Daftar Baru?
Metode random.shuffle(a) default mengubah daftar yang ada a. Ia bekerja di tempat. Jadi, bagaimana jika Anda ingin mengocok daftar asli tetapi mengembalikan daftar baru sambil membiarkan elemen daftar asli tidak berubah?
Tidak masalah—gunakan pemotongan untuk menyalin daftar
Latihan. Coba tebak—apa hasil dari cuplikan kode ini?
Artikel terkait
- Bagaimana cara menyalin daftar?
- Mengiris
- Daftar Python [Panduan Utama]
- Modul acak menjelaskan
- Bagaimana Cara Mengocok Dua Array Bersamaan dengan Python?
Kemana Pergi Dari Sini?
Cukup teori. Mari kita berlatih
Pembuat kode dibayar enam digit atau lebih karena mereka dapat memecahkan masalah dengan lebih efektif menggunakan kecerdasan mesin dan otomasi
Untuk menjadi lebih sukses dalam pengkodean, selesaikan lebih banyak masalah nyata untuk orang-orang nyata. Begitulah cara Anda memoles keterampilan yang benar-benar Anda butuhkan dalam latihan. Lagi pula, apa gunanya teori belajar yang tidak dibutuhkan siapa pun?
Anda membangun keterampilan pengkodean bernilai tinggi dengan mengerjakan proyek pengkodean praktis
Apakah Anda ingin berhenti belajar dengan proyek mainan dan fokus pada proyek kode praktis yang memberi Anda uang dan memecahkan masalah nyata bagi orang-orang?
🚀 Jika jawaban Anda adalah YA. , pertimbangkan untuk menjadi pengembang lepas Python. Ini adalah cara terbaik untuk mendekati tugas meningkatkan keterampilan Python Anda—bahkan jika Anda benar-benar pemula
Jika Anda hanya ingin belajar tentang peluang freelancing, jangan ragu untuk menonton webinar gratis saya “Bagaimana Membangun Keterampilan Berpenghasilan Tinggi Anda Python” dan pelajari bagaimana saya mengembangkan bisnis coding saya secara online dan bagaimana Anda juga bisa—dari kenyamanan Anda
Bergabunglah dengan webinar gratis sekarang
Chris
Saat bekerja sebagai peneliti dalam sistem terdistribusi, Dr. Christian Mayer menemukan cintanya untuk mengajar siswa ilmu komputer
Untuk membantu siswa mencapai tingkat kesuksesan Python yang lebih tinggi, dia mendirikan situs web pendidikan pemrograman Finxter. com. Dia adalah penulis buku pemrograman populer Python One-Liners (NoStarch 2020), rekan penulis seri Coffee Break Python dari buku yang diterbitkan sendiri, penggemar ilmu komputer, pekerja lepas, dan pemilik salah satu dari 10 blog Python terbesar di dunia
Kesukaannya adalah menulis, membaca, dan coding. Tetapi hasrat terbesarnya adalah untuk melayani calon pembuat kode melalui Finxter dan membantu mereka meningkatkan keterampilan mereka. Anda dapat bergabung dengan akademi email gratisnya di sini
Menempatkan daftar dalam urutan acak mungkin tampak seperti tugas yang tidak biasa, tetapi bisa sangat berguna untuk banyak bisnis. Misalnya, Anda mungkin ingin secara acak menetapkan prospek ke tenaga penjualan, menugaskan pekerjaan ke karyawan, atau mengadakan undian untuk pelanggan. Apapun alasannya, Anda bisa menggunakan bahasa pemrograman populer Python untuk mengacak urutan daftar elemen
Jika Anda membuat daftar acak atau nomor acak untuk tujuan sensitif, seperti pengundian hadiah dengan uang yang dipertaruhkan atau tujuan kriptografi, Anda harus memastikan bahwa Anda menggunakan pembuat nomor acak berkualitas tinggi
Acak Daftar dengan Python
Anda dapat menggunakan Python untuk membuat alat pengacak daftar hanya dalam beberapa baris kode. Python gratis untuk penggunaan komersial dan pribadi dan tersedia untuk semua sistem operasi modern, termasuk Microsoft Windows, macOS, Linux dan sistem bergaya Unix lainnya
Python 2 dan Python 3, dua versi bahasa pemrograman yang digunakan secara luas, menyertakan fungsi yang disebut shuffle yang dapat mengacak daftar atau urutan data lainnya. Untuk menggunakan pengacakan, impor paket acak Python dengan menambahkan baris impor acak di dekat bagian atas program Anda
Kemudian, jika Anda memiliki daftar bernama x, Anda dapat memanggil acak. shuffle(x) agar fungsi pengacakan acak menyusun ulang daftar dengan cara acak
Perhatikan bahwa fungsi acak menggantikan daftar yang ada. Jika Anda ingin menyimpan salinan daftar dalam urutan aslinya, buat salinan daftar sebelum mengacaknya. Anda dapat mengimpor paket salin Python dan menggunakan metode salinnya untuk melakukannya. Gunakan y = salin. copy(x) untuk membuat salinan daftar x dan menetapkan variabel y untuk merujuk padanya. Perhatikan bahwa jika Anda menulis y = x, variabel y ditugaskan untuk menunjuk ke daftar yang sama seperti x, dan salinan baru tidak dibuat
Ambil Elemen Acak
Jika Anda hanya ingin mengambil elemen acak dari daftar dengan Python, Anda juga dapat melakukannya dengan paket acak. Impor paket acak dengan menyertakan impor acak di dekat bagian atas kode Anda
Untuk memilih satu elemen, gunakan acak. pilihan(x), di mana x adalah nama daftar Anda. Fungsi mengembalikan elemen tunggal yang dipilih secara acak dari daftar x. Perhatikan bahwa jika Anda memanggil acak. pilihan beberapa kali, Anda mungkin mendapatkan elemen daftar yang sama beberapa kali kecuali Anda menghapusnya dari daftar di antara panggilan
Jika Anda ingin mengambil sekumpulan elemen yang tidak menyertakan elemen yang sama dua kali, gunakan acak. sampel (x, k), di mana x adalah daftar dan k adalah jumlah elemen yang Anda inginkan. Jika suatu daftar menyertakan elemen berulang, mereka mungkin diulangi dalam sampel acak
Risiko Dengan Generator Angka Acak
Tidak semua generator angka acak dibuat sama. Dokumentasi Python memperingatkan bahwa generator angka acak bawaan Python tidak cocok untuk tujuan kriptografi, di mana tingkat minimum keacakan aktual diperlukan untuk membuat generator angka acak untuk mengenkripsi data dengan sedikit risiko dekripsi pihak ketiga. Jika penting bagi bisnis Anda bahwa daftarnya benar-benar acak dan tidak dapat diprediksi, seperti untuk undian, penting untuk menggunakan generator nomor acak yang tepat.
Beberapa subclass dari modul acak Python memberikan peningkatan tingkat keacakan. Pada sistem operasi modern, Anda dapat meminta sistem operasi untuk menyediakan data acak dengan kualitas yang dapat digunakan untuk kriptografi. Melalui Python, Anda dapat mengakses data acak ini menggunakan fungsi os. urandom di modul os, atau Anda bisa memanggil random. SystemRandom untuk menghasilkan generator angka acak yang setara dengan modul acak menggunakan data acak sistem operasi
Untuk menggunakan ini dengan shuffle, ketik r = random. SystemRandom() untuk menghasilkan generator angka acak dan kemudian memanggil r. acak (x) pada daftar Anda x. Fungsi lain, termasuk pilihan dan sampel, juga dapat digunakan dengan generator SystemRandom
Periksa dokumentasi sistem operasi Anda untuk memahami cara kerja generator nomor acaknya dan apakah cocok untuk kebutuhan Anda. Dalam beberapa kasus, Anda mungkin dapat mengonfigurasi sistem operasi untuk menggunakan perangkat keras eksternal untuk menghasilkan nomor acak