Cara mendapatkan elemen acak dari set dengan python

Dengan Python, Anda dapat mengambil sampel elemen secara acak dari daftar dengan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 6, print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 7, dan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 8 dari modul print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 9. Fungsi-fungsi ini juga dapat diterapkan pada string dan tuple

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 6 mengembalikan satu elemen acak, dan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 7 dan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 8 mengembalikan daftar beberapa elemen acak. print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 7 digunakan untuk pengambilan sampel acak tanpa penggantian, dan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 8 digunakan untuk pengambilan sampel acak dengan penggantian

  • acak — Menghasilkan angka pseudo-acak — Python 3. 8. 1 dokumentasi

Artikel ini menjelaskan konten berikut

  • Pilih elemen acak. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _5
  • Sampel acak tanpa penggantian. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _6
  • Sampel acak dengan penggantian. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _7
  • Inisialisasi generator nomor acak. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _8

Jika Anda ingin memilih elemen dari daftar berdasarkan ketentuan, lihat artikel berikut ini

  • Ekstrak, ganti, ubah elemen daftar dengan Python

Jika Anda ingin mengocok seluruh daftar, atau mendapatkan daftar angka acak, lihat artikel berikut

  • Kocok daftar, string, tuple dengan Python (acak. acak, sampel)
  • Hasilkan int/float acak dengan Python (acak, randrange, randint, dll. )

Tautan Bersponsor

Pilih elemen acak. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _5

# print(random.choice([])) # IndexError: Cannot choose from an empty sequence _5 mengembalikan elemen acak dari daftar

import random l = [0, 1, 2, 3, 4] print(random.choice(l)) # 1

sumber.

Tuple dan string diproses dengan cara yang sama. Dalam kasus string, satu karakter dikembalikan

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b

sumber.

Kesalahan dimunculkan jika daftar, tuple, atau string kosong

# print(random.choice([])) # IndexError: Cannot choose from an empty sequence _

sumber.

Sampel acak tanpa penggantian. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _6

# print(random.choice([])) # IndexError: Cannot choose from an empty sequence _6 sampel acak beberapa elemen dari daftar tanpa penggantian

Berikan daftar ke argumen pertama dan jumlah elemen yang ingin Anda dapatkan ke argumen kedua. Sebuah daftar dikembalikan

import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'>

sumber.

Jika argumen kedua disetel ke import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 3, daftar dengan satu elemen dikembalikan. Jika disetel ke import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> _4, daftar kosong dikembalikan. Jika diatur ke nilai yang melebihi jumlah elemen daftar, kesalahan akan muncul

print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative

sumber.

Bahkan jika Anda meneruskan tupel atau string ke argumen pertama, daftar dikembalikan

print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e']

sumber.

Untuk mengonversi daftar menjadi tuple atau string, gunakan import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 5, import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 6

  • Konversi daftar dan tupel satu sama lain dengan Python
  • Gabungkan string dengan Python (+ operator, gabung, dll. )

print(tuple(random.sample(('xxx', 'yyy', 'zzz'), 2))) # ('yyy', 'xxx') print(''.join(random.sample('abcde', 2))) # de

sumber.

Perhatikan bahwa jika daftar atau tupel asli berisi elemen duplikat, nilai yang sama dapat dipilih

l_dup = [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] print(random.sample(l_dup, 3)) # [3, 1, 1]

sumber.

Jika Anda ingin menghindari nilai duplikat, gunakan import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 7 untuk mengonversi daftar dan tupel menjadi import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 8, ekstrak hanya elemen unik, lalu gunakan print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 7

  • Hapus/ekstrak elemen duplikat dari daftar dengan Python

print(set(l_dup)) # {0, 1, 2, 3} print(random.sample(set(l_dup), 3)) # [1, 3, 2]

sumber.

Tautan Bersponsor

Sampel acak dengan penggantian. # print(random.choice([])) # IndexError: Cannot choose from an empty sequence _7

# print(random.choice([])) # IndexError: Cannot choose from an empty sequence _7 sampel acak beberapa elemen dari daftar dengan penggantian

# print(random.choice([])) # IndexError: Cannot choose from an empty sequence _7 ditambahkan di Python 3. 6 dan tidak dapat digunakan di versi sebelumnya

Tentukan jumlah elemen yang ingin Anda dapatkan dengan argumen print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 3. Karena elemen dipilih dengan penggantian, print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 3 bisa lebih besar dari jumlah elemen dalam daftar asli

Karena print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative _3 adalah argumen kata kunci saja, maka perlu untuk menentukan seperti print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 6

import random l = [0, 1, 2, 3, 4] print(random.choices(l, k=3)) # [2, 1, 0] print(random.choices(l, k=10)) # [3, 4, 1, 4, 4, 2, 0, 4, 2, 0]

sumber.

print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative _3 diatur ke import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> 3 secara default. Jika dihilangkan, daftar dengan satu elemen dikembalikan

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b 0

sumber.

Anda dapat menentukan bobot (probabilitas) untuk setiap elemen ke argumen print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 9. Jenis elemen daftar yang ditentukan dalam print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 9 dapat berupa print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 1 atau print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 2. Jika diatur ke import random l = [0, 1, 2, 3, 4] print(random.sample(l, 3)) # [1, 3, 2] print(type(random.sample(l, 3))) # <class 'list'> _4, elemen tidak dipilih

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b _1

sumber.

Bobot kumulatif dapat ditentukan dalam argumen print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 4. print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 4 dalam kode contoh berikut ini setara dengan print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 9 pertama dalam kode di atas

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b _2

sumber.

Secara default, print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative _9 dan print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 4 diatur ke print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 9, dan setiap elemen dipilih dengan probabilitas yang sama

Jika panjang (jumlah elemen) print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 9 atau print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 4 berbeda dari daftar aslinya, kesalahan akan muncul

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b _3

sumber.

Selain itu, kesalahan muncul jika Anda menentukan print(random.sample(l, 1)) # [0] print(random.sample(l, 0)) # [] # print(random.sample(l, 10)) # ValueError: Sample larger than population or is negative 9 dan print(random.sample(('xxx', 'yyy', 'zzz'), 2)) # ['xxx', 'yyy'] print(random.sample('abcde', 2)) # ['a', 'e'] 4 pada saat yang sama

print(random.choice(('xxx', 'yyy', 'zzz'))) # yyy print(random.choice('abcde')) # b _4

sumber.

Dalam kode contoh sejauh ini, sebuah daftar ditentukan untuk argumen pertama, tetapi hal yang sama berlaku untuk sebuah tuple dan string

Bagaimana Anda memilih elemen secara acak dari set dengan Python?

Gunakan acak. sample() function saat Anda ingin memilih beberapa item acak dari daftar tanpa pengulangan atau duplikat. Ada perbedaan antara pilihan() dan pilihan(). Pilihan() telah ditambahkan di Python 3. 6 untuk memilih n elemen dari daftar secara acak, tetapi fungsi ini dapat mengulang item.

Bagaimana Anda mengembalikan elemen acak dari satu set?

Metode 1. Dengan mengonversi ke array. .
Pertama-tama ubah HashSet menjadi array dan kemudian akses elemen acak darinya
Kemudian kita akan membuat objek kelas Random dan akan memanggil metode nextInt() dari kelas tersebut yang akan memberi kita nomor acak yang kurang dari atau sama dengan ukuran HashSet

Bagaimana Anda mencetak nomor acak dari satu set dengan Python?

impor acak n = acak. acak() cetak(n)
impor acak n = acak. randint(0,22) cetak(n)
impor daftar acak acak = [] untuk i dalam rentang (0,5). n = acak. randint(1,30) daftar acak. .
impor acak #Hasilkan 5 angka acak antara 10 dan 30 daftar acak = acak. sampel(rentang(10, 30), 5) cetak(daftar acak)

Bagaimana Anda mengekstrak item acak dari daftar dengan Python?

Dengan Python, Anda dapat mengambil sampel elemen secara acak dari daftar dengan choice() , sample() , dan choice() dari modul acak. These functions can also be applied to a string and tuple. choice() returns one random element, and sample() and choices() return a list of multiple random elements.

Postingan terbaru

LIHAT SEMUA