Bagaimana Anda mengacak serangkaian huruf dengan python?

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
TgAriu

Memahami fungsi sample()

Fungsi sample() hadir dalam modul acak. Anda dapat membaca dokumentasi lengkapnya

  1. 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
  2. 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

['O', 'a', 'O', 'O']
_

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
_0

Keluaran

Monkey
guiTAr
dog
cat
POTATO
_1

Harap 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

Bagaimana Anda mengacak huruf dalam string dengan Python?

Dalam hal ini, kita perlu memecah string ke dalam daftar karakter, berebut menggunakan sample(), menggabungkannya kembali menggunakan join() dan kemudian membuat ulang daftar menggunakan pemahaman daftar.

Bagaimana Anda mengacak daftar string dengan Python?

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

Bagaimana Anda mencampur string dengan Python?

Gunakan operator + .

Bagaimana cara mengubah daftar menjadi string?

Untuk mengonversi daftar menjadi string, gunakan Pemahaman Daftar Python dan fungsi join() . Pemahaman daftar akan melintasi elemen satu per satu, dan metode join() akan menggabungkan elemen daftar menjadi string baru dan mengembalikannya sebagai output.