Bagaimana Anda mengocok dua daftar sekaligus dengan python?

Dalam posting ini, Anda dapat mempelajari beberapa contoh tentang cara mengacak daftar dengan Python, berfungsi acak. shuffle() dan cara mengocok dua daftar dengan cara yang sama. Semua contoh diuji terhadap Python 3. 7

Beberapa contohnya termasuk pengocokan gratis, pengocokan yang disinkronkan dari beberapa daftar dengan seed, pengocokan berbagai jenis daftar. Contohnya adalah untuk pemula hingga mahir dan menyertakan kode dan hasil lengkap

Anda mungkin suka juga. Contoh Nomor Acak Python

Fungsi acak. acak()

Dokumentasi resmi menggambarkan fungsinya sebagai

acak. acak (x[, acak])

Kocok urutan x pada tempatnya
Argumen opsional random adalah fungsi 0-argumen yang mengembalikan float acak di [0. 0, 1. 0];
Untuk mengocok urutan yang tidak dapat diubah dan mengembalikan daftar acak baru, gunakan sample(x, k=len(x)) sebagai gantinya

Sintaksnya sederhana dan penggunaan fungsinya sangat mudah. Ada beberapa argumen

  • x adalah urutan apa pun (daftar, String, atau tupel) yang ingin Anda acak
  • Argumen opsional acak adalah fungsi 0-argumen yang mengembalikan angka float acak antara 0. 1 ke 1. 0. Secara default, ini adalah fungsi random()

Daftar acak angka / rentang Python

Mengacak daftar dengan Python angka dari 0 hingga 20 (kecuali 20) dihasilkan oleh rentang. Menghasilkan daftar angka dengan rentang adalah operasi umum di Python. Satu-satunya kelemahan adalah mereka diurutkan. Jika Anda ingin mengocok daftar secara acak, Anda dapat menggunakan acak. acak

import random
nums = [x for x in range(20)]
random.shuffle(nums)
print(nums)

hasil

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_

Mengulang shuffle akan menghasilkan hasil yang berbeda setiap kali kecuali kita menggunakan seed

Daftar angka acak Python

Mengacak daftar dengan python angka dari daftar yang telah ditentukan. Contoh identik dengan yang sebelumnya

import random
nums = [0, 5, 7, 4, 6, 8, 3]
random.shuffle(nums)
print(nums)

hasil

[5, 8, 4, 7, 3, 0, 6]

Daftar string acak Python

Cara yang sama dapat diterapkan untuk daftar string. Yang perlu Anda lakukan hanyalah menggunakan metode - acak. acak

import random
str = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
random.shuffle(str)
print(str)
_

hasil

['f', 's', 'c', 'x', 'a', 'l', 'n', 'z', 'e', 'r', 'j', 'v', 'w', 'g', 'm', 'u', 'k', 'd', 'i', 'p', 'h', 'q', 'y', 'b', 't', 'o']

Jika Anda ingin mengurutkan daftar yang diacak, Anda memiliki dua opsi

  • mengubah daftar
str.sort()
_
  • menyimpan daftar aslinya
for x in sorted(str):
    print x

Shuffle tersinkronisasi Python dari dua daftar

Terkadang Anda perlu menggunakan benih untuk mendapatkan pesanan khusus atau jika Anda perlu memiliki tingkat pengocokan yang berbeda. Kasus penggunaan yang mungkin adalah dua tumpukan kartu. Anda mungkin perlu mengocok tumpukan dengan cara serupa - ini dimungkinkan dengan Python dengan menggunakan seed

Untuk memverifikasi pengocokan dan seed, Anda harus memiliki dua daftar dan satu seed. Ini adalah contoh dasar yang hanya menunjukkan cara menggunakan seed untuk satu daftar

import random

SEED = 'abc'

array = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
random.seed(SEED)
random.shuffle(array)

print ( array)
_

hasil dengan biji

['x', 'n', 'y', 'u', 's', 'l', 'i', 'm', 'k', 'c', 'f', 'h', 'r', 'z', 'w', 'b', 'o', 'p', 't', 'e', 'd', 'g', 'v', 'j', 'q', 'a']
_

hasil tanpa biji

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_0

Contoh lain untuk mengocok dua daftar Python yang menjaga urutan

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_1

Dalam contoh ini Anda dapat menemukan bagaimana kedua daftar tetap tersinkronisasi setelah beberapa operasi pengacakan. Jika Anda ingin mempelajari lebih lanjut tentang benih, Anda dapat memeriksa bagian sumber daya tentang benih

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_2

daftar daftar acak Python

Kasus penggunaan lain yang sangat menarik adalah ketika Anda memiliki struktur bersarang dengan data serupa. Dalam hal ini Anda cukup mengulangi daftar dan menerapkan fungsi shuffle
Mengacak daftar daftar dengan python dengan loop. Ini akan mengocok tidak hanya level pertama dari elemen daftar tetapi juga yang bersarang. Kode ini hanya berfungsi dengan dua level sublist tetapi pendekatan yang sama dapat diterapkan untuk lebih banyak level

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_3

hasil

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_4

Jika Anda perlu menggunakan cara pengacakan yang serupa untuk daftar bersarang, Anda dapat menggabungkan kode ini dengan seed dari bagian sebelumnya untuk mencapai pengocokan yang tersinkronisasi

Acak daftar "Balik".

Terkadang Anda perlu membalikkan pengocokan. Bergantung pada situasinya, itu mungkin atau Anda mungkin perlu membuat trek pengocokan - menjaga urutan urutan dan kemudian menerapkannya

Di bawah ini ada dua fungsi yang bisa dilakukan

  • mengocok dengan menjaga ketertiban
  • membalikkan pengocokan keadaan sebelumnya
[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_5

dan berikut adalah contoh penggunaannya

[9, 15, 19, 16, 8, 17, 10, 1, 14, 4, 18, 13, 0, 5, 12, 3, 7, 11, 6, 2]
_6

yang hasilnya adalah

BENAR

Dan daftarnya adalah

['f', 'w', 'i', 'y', 'l', 'z', 't', 'v', 'e', ​​'g', 'x', 'm', '

Apakah ada cara untuk mengocok daftar dengan Python?

Metode Python Random shuffle() . Catatan. Metode ini mengubah daftar asli, tidak mengembalikan daftar baru.

Bagaimana cara mengocok dua array dengan Python?

Anda dapat meneruskan kedua larik sebagai sklearn. util. shuffle(arr_1, arr_2) , yang mengocoknya secara konsisten dan kemudian mengembalikan salinan acak dari setiap larik.

Bagaimana Anda mengocok array daftar dengan Python?

Menggunakan metode shuffle() dari pustaka Random untuk mengacak array yang diberikan . Di sini kita menggunakan metode acak dari modul acak bawaan untuk mengocok seluruh array sekaligus.

Bagaimana Anda mengocok 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