Dalam tutorial ini, kita akan melihat cara mengacak string dalam daftar Python yang diberikan. Kami akan melihat implementasi sederhana dari tugas ini dengan Python. Kita akan menggunakan fungsi built-in sample() yang ditemukan di modul acak
Perebutan String dalam daftar
Pada bagian ini, kami mencoba memahami masalahnya. Jika ada yang membutuhkannya, berikut adalah penyegaran cepat pada daftar dengan Python
Saya yakin kita dapat memahami masalahnya dengan lebih baik dengan bantuan sebuah contoh. Jadi mari kita pertimbangkan daftar 'l' yang didefinisikan di bawah ini
l = ['cat', 'dog', 'Monkey', 'POTATO', 'guiTAr']
Perhatian kami adalah untuk 'mengacak string dalam daftar'. Kami TIDAK ingin mengacak urutan string. Artinya, kami TIDAK ingin hasilnya berbentuk
Monkey guiTAr dog cat POTATO_Kami ingin hasilnya berbentuk
tac ogd nMekyo OTTOAP TgAriuMemahami fungsi sample()
Fungsi sample() hadir dalam modul acak. Anda dapat membaca dokumentasi lengkapnya
- sample(population, k) mengambil 2 argumen dan menampilkan daftar. 'populasi' mengacu pada urutan atau kumpulan populasi. Untuk masalah kita, ini mengacu pada sebuah string. 'k' adalah panjang daftar yang dikembalikan dan tidak boleh lebih besar dari panjang string
- Daftar yang dikembalikan oleh sample() dihasilkan dengan mengambil elemen string tanpa penggantian
Misalkan, string kita, 's', diberikan sebagai berikut. Kami membuat dan mencetak daftar 4 elemen sebagai berikut
s = 'ballOOns' print(sample(s, 4))Output kami akan mirip dengan
['n', 'l', 'O', 'l']_atau
['b', 's', 'a', 'l']Perhatikan bahwa jika ada beberapa kemunculan elemen dalam string, daftar tersebut mungkin memiliki elemen yang berulang. Namun, mereka tidak akan muncul lebih dari berapa kali mereka hadir dalam string. Untuk contoh di atas, kami TIDAK akan mendapatkan output berikut
dan
['b', 'b', 'O', 'l']Setelah memahami konsep-konsep ini, kami bertanya pada diri sendiri pertanyaan berikut
'Apa yang terjadi jika 'k' diberi panjang string?'
Kami melihat bahwa daftar yang dikembalikan harus memiliki elemen 'k' dari string tanpa penggantian. Artinya, kami mendapatkan daftar yang berisi semua karakter string (secara acak)
print(sample(s, len(s)))_Memberikan output yang mirip dengan
['a', 'n', 'O, 's, 'b, 'l', 'O', 'l']_Setelah kita memiliki daftarnya, kita dapat mengonversinya menjadi string menggunakan salah satu metode yang diberikan di sini
Implementasi dengan Python. Perebutan String dalam Daftar tertentu
Kode berikut berfungsi di Google Colab. Perubahan yang sesuai dapat dilakukan sesuai dengan platform tempat program dijalankan
Monkey guiTAr dog cat POTATO_0Keluaran
Monkey guiTAr dog cat POTATO_1Harap dicatat bahwa keluaran berubah setiap kali karena acak
Kesimpulan
Dalam tutorial ini, kita melihat cara mengacak string dalam Python tertentu. Kami secara khusus menangani penggunaan fungsi sample() yang ada di modul acak
random.shuffle() mengacak daftar di tempat, dan random.sample() mengembalikan daftar acak baru. random.sample() juga dapat digunakan untuk string dan tuple
- random.shuffle()_ mengocok daftar di tempat
- random.sample() mengembalikan daftar acak baru
- Cara mengocok string dan tuple
- Inisialisasi generator angka acak dengan l = list(range(5)) print(l) # [0, 1, 2, 3, 4] lr = random.sample(l, len(l)) print(lr) # [0, 3, 1, 4, 2] print(l) # [0, 1, 2, 3, 4] 3
Jika Anda ingin mengurutkan dalam urutan menaik atau menurun atau mundur alih-alih mengacak, lihat artikel berikut
- Urutkan daftar, string, tuple dengan Python (sort, sortir)
- Balikkan daftar, string, tupel dengan Python (terbalik, terbalik)
Tautan Bersponsor
random.shuffle()_ mengocok daftar di tempat
Anda dapat mengocok daftar di tempat dengan random.shuffle()
import random l = list(range(5)) print(l) # [0, 1, 2, 3, 4] random.shuffle(l) print(l) # [1, 0, 4, 3, 2]
sumber.
random.sample() mengembalikan daftar acak baru
random.sample() mengembalikan daftar acak baru. Daftar asli tetap tidak berubah
random.sample() mengembalikan elemen acak dari daftar. Berikan daftar ke argumen pertama dan jumlah elemen untuk kembali ke argumen kedua. Lihat artikel berikut untuk detailnya
- Pengambilan sampel acak dari daftar dengan Python (random. pilihan, sampel, pilihan)
Dengan menyetel jumlah total elemen dalam daftar ke argumen kedua, random.sample() mengembalikan daftar baru dengan semua elemen diacak secara acak. Anda bisa mendapatkan jumlah total elemen dalam daftar dengan s = 'abcde' # random.shuffle(s) # TypeError: 'str' object does not support item assignment t = tuple(range(5)) print(t) # (0, 1, 2, 3, 4) # random.shuffle(t) # TypeError: 'tuple' object does not support item assignment 0
l = list(range(5)) print(l) # [0, 1, 2, 3, 4] lr = random.sample(l, len(l)) print(lr) # [0, 3, 1, 4, 2] print(l) # [0, 1, 2, 3, 4]
sumber.
Tautan Bersponsor
Cara mengocok string dan tuple
String dan tupel tidak dapat diubah, jadi random.shuffle() yang mengubah objek asli menimbulkan kesalahan s = 'abcde' # random.shuffle(s) # TypeError: 'str' object does not support item assignment t = tuple(range(5)) print(t) # (0, 1, 2, 3, 4) # random.shuffle(t) # TypeError: 'tuple' object does not support item assignment 2
s = 'abcde' # random.shuffle(s) # TypeError: 'str' object does not support item assignment t = tuple(range(5)) print(t) # (0, 1, 2, 3, 4) # random.shuffle(t) # TypeError: 'tuple' object does not support item assignment
sumber.
Untuk mengocok string atau tupel, gunakan random.sample(), yang membuat objek baru
random.sample() mengembalikan daftar bahkan ketika string atau tuple ditentukan ke argumen pertama, jadi perlu mengubahnya menjadi string atau tupel
Untuk string, daftar karakter dikembalikan. Gunakan metode s = 'abcde' # random.shuffle(s) # TypeError: 'str' object does not support item assignment t = tuple(range(5)) print(t) # (0, 1, 2, 3, 4) # random.shuffle(t) # TypeError: 'tuple' object does not support item assignment _5 untuk menggabungkan ke satu string lagi