Cara mengacak urutan daftar dengan python

Shuffle() adalah metode bawaan dari modul acak. Ini digunakan untuk mengocok urutan (daftar). Mengacak daftar objek berarti mengubah posisi elemen urutan menggunakan Python

Sintaks acak. acak()

Urutan item dalam urutan, seperti daftar, diatur ulang menggunakan metode shuffle(). Fungsi ini memodifikasi daftar awal daripada mengembalikan yang baru

Sintaksis. acak. acak (urutan, fungsi)

Parameter.  

  • urutan. bisa daftar
  • fungsi. opsional dan secara default adalah random(). Itu harus mengembalikan nilai antara 0 dan 1

Pengembalian. Tidak ada apa-apa

Python acak. shuffle() berfungsi untuk mengacak daftar

Contoh 1.  

Python3




# import the random module

import random

 

# declare a list

sample_list= ['A'

Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
0
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
1
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
0_______0
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
3
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
0
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
5
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
0
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
7
Original list : 
['A', 'B', 'C', 'D', 'E']

After the first shuffle : 
['A', 'D', 'B', 'E', 'C']

After the second shuffle : 
['A', 'D', 'B', 'E', 'C']
8

Pada artikel ini, kami akan menunjukkan cara mengocok daftar objek dengan python. Di bawah ini adalah berbagai metode untuk menyelesaikan tugas ini

  • Menggunakan acak. acak() fungsi

  • Menggunakan acak. contoh() fungsi

  • Menggunakan Algoritma Fisher-Yates shuffle

  • Menggunakan acak. randint() dan fungsi pop()

Asumsikan kita telah mengambil daftar yang berisi beberapa elemen. Kami akan mengocok elemen daftar secara acak menggunakan metode berbeda seperti yang ditentukan di atas

Menggunakan acak. acak() fungsi

Metode shuffle() dalam modul acak digunakan untuk mengocok daftar. Dibutuhkan urutan, seperti daftar, dan mengatur ulang urutan item

Metode shuffle() ini mengubah daftar asli, tidak mengembalikan daftar baru. Urutan daftar hilang dalam proses ini yang merupakan satu-satunya kelemahan dari metode ini

Sintaksis

random.shuffle(sequence, function)
_

Parameter

  • urutan - setiap urutan seperti daftar, tupel, dll

  • function(opsional)- nama fungsi yang mengembalikan nilai antara 0. 0 dan 1. 0. Fungsi random() akan digunakan jika tidak ditentukan

Algoritma (Langkah)

Berikut ini adalah Algoritma / langkah-langkah yang harus diikuti untuk melakukan tugas yang diinginkan -

  • Gunakan kata kunci impor untuk mengimpor modul acak

  • Buat variabel untuk menyimpan daftar input

  • Cetak daftar masukan

  • Gunakan acak. shuffle() berfungsi untuk mengocok semua elemen daftar secara acak dengan meneruskan daftar sebagai argumen

  • Cetak daftar acak yang dihasilkan

Contoh

Program berikut mengembalikan daftar yang diacak menggunakan acak. shuffle() fungsi–

Keluaran

Saat dieksekusi, program di atas akan menghasilkan output berikut -

Input list: [3, 10, 5, 9, 2]
Shuffled list: [9, 3, 10, 2, 5]

Menggunakan acak. contoh() fungsi

Acak. sample() metode dalam python mengembalikan daftar baru yang dikocok. Daftar asli tetap tidak berubah

Acak. metode sample() mengembalikan daftar yang berisi sejumlah elemen yang dipilih secara acak dari suatu urutan

Sintaksis

random.sample(sequence, k)

Parameter

  • urutan - setiap urutan seperti daftar, tupel, dll

  • k - jumlah elemen yang akan dikembalikan

Algoritma (Langkah)

Berikut ini adalah Algoritma / langkah-langkah yang harus diikuti untuk melakukan tugas yang diinginkan -

  • Gunakan kata kunci impor untuk mengimpor modul acak

  • Gunakan acak. sample() berfungsi untuk mengocok semua elemen daftar secara acak dengan meneruskan daftar input, dan panjang daftar input menggunakan fungsi len()(Jumlah item dalam objek dikembalikan oleh metode len()) sebagai argumen

  • Cetak daftar acak yang dihasilkan

Contoh

Program berikut mengembalikan daftar yang diacak menggunakan acak. shuffle() fungsi–

Keluaran

Saat dieksekusi, program di atas akan menghasilkan output berikut -

Input list: [3, 10, 5, 9, 2]
Shuffled list: [2, 5, 9, 10, 3]

Menggunakan Algoritma Fisher-Yates shuffle

Ini adalah algoritma terkenal di Python yang digunakan untuk mengocok urutan angka

Algoritma Fisher-Yates mengocok

Algoritma Fisher-Yates shuffle memiliki kompleksitas waktu O(n). Asumsinya adalah kita diberi fungsi rand(), yang menghasilkan bilangan acak dalam waktu O(1). Idenya adalah memulai dengan elemen terakhir dan menukarnya dengan elemen yang dipilih secara acak dari seluruh array (termasuk yang terakhir). Pertimbangkan array dari 0 hingga n-2 (dengan ukuran dikurangi satu) dan ulangi prosesnya hingga kita mencapai elemen pertama

Algoritma (Langkah)

Berikut ini adalah Algoritma / langkah-langkah yang harus diikuti untuk melakukan tugas yang diinginkan -

  • Gunakan for loop untuk menelusuri dari akhir daftar dengan fungsi len() (mengembalikan jumlah item dalam objek)

  • Dapatkan indeks acak hingga nilai indeks saat ini menggunakan acak. metode randint() (Mengembalikan nomor acak dalam rentang yang ditentukan)

  • Tukar elemen indeks saat ini dengan elemen pada indeks acak

  • Cetak daftar acak yang dihasilkan

Contoh

Program berikut mengembalikan daftar yang dikocok menggunakan Algoritma Fisher-Yates shuffle –

Keluaran

Saat dieksekusi, program di atas akan menghasilkan output berikut -

Input list: [3, 10, 5, 9, 2]
Shuffled list: [9, 10, 3, 5, 2]

Menggunakan acak. randint() dan fungsi pop()

acak. randint() − Mengembalikan angka acak dalam rentang yang ditentukan

Contoh

Program berikut mengembalikan daftar yang diacak menggunakan acak. fungsi randint() dan pop() –

Keluaran

Saat dieksekusi, program di atas akan menghasilkan output berikut -

Input list: [3, 10, 5, 9, 2]
Shuffled list: [10, 2, 3, 5, 9]

Kesimpulan

Pada artikel ini, kita mempelajari empat metode Python berbeda untuk mengocok daftar yang diberikan. Kami juga belajar tentang algoritme Fisher-Yates untuk daftar acak dan cara menggunakannya dengan Python

Bagaimana Anda mencampuradukkan daftar dengan Python?

Algoritma (Langkah) .
Gunakan kata kunci impor untuk mengimpor modul acak
Buat variabel untuk menyimpan daftar input
Cetak daftar masukan
Gunakan acak. shuffle() berfungsi untuk mengocok semua elemen daftar secara acak dengan meneruskan daftar sebagai argumen
Cetak daftar acak yang dihasilkan

Bagaimana Anda mengacak daftar di Python 3?

Python 3 - Metode pengocokan angka() .
Keterangan. Metode shuffle() mengacak item daftar di tempat
Sintaksis. Berikut ini adalah sintaks untuk metode shuffle() − shuffle (lst,[random]).
Parameter. lst - Ini bisa berupa daftar atau tupel. .
Nilai Pengembalian. Metode ini mengembalikan daftar yang dikocok ulang
Contoh. .
Keluaran

Bagaimana cara mengacak dengan Python?

Untuk menghasilkan angka acak dengan Python, randint() function digunakan. Fungsi ini didefinisikan dalam modul acak.

Apakah ada fungsi shuffle di Python?

shuffle() fungsi dalam Python. Shuffle() adalah metode bawaan dari modul acak . Ini digunakan untuk mengocok urutan (daftar). Mengacak daftar objek berarti mengubah posisi elemen urutan menggunakan Python.