Sejauh ini saya telah menemukan cara untuk mengimpor file, membuat file baru, dan mengacak daftar.
Saya mengalami masalah dalam memilih hanya 50 item dari daftar secara acak untuk menulis ke file?
def randomizer(input,output1='random_1.txt',output2='random_2.txt',output3='random_3.txt',output4='random_total.txt'):
#Input file
query=open(input,'r').read().split()
dir,file=os.path.split(input)
temp1 = os.path.join(dir,output1)
temp2 = os.path.join(dir,output2)
temp3 = os.path.join(dir,output3)
temp4 = os.path.join(dir,output4)
out_file4=open(temp4,'w')
random.shuffle(query)
for item in query:
out_file4.write(item+'\n')
Jadi jika total file pengacakan itu
example:
random_total = ['9','2','3','1','5','6','8','7','0','4']
Saya ingin 3 file (out_file1 | 2 | 3) dengan set acak pertama 3, set acak kedua 3, dan set acak ketiga 3 (untuk contoh ini, tetapi yang ingin saya buat harus memiliki 50)
random_1 = ['9','2','3']
random_2 = ['1','5','6']
random_3 = ['8','7','0']
Jadi '4' terakhir tidak akan termasuk yang baik-baik saja.
Bagaimana saya bisa memilih 50 dari daftar yang saya acak?
Lebih baik lagi, bagaimana saya bisa memilih 50 secara acak dari daftar asli?
Jawaban:
Jika daftar ini dalam urutan acak, Anda bisa mengambil 50 yang pertama.
Kalau tidak, gunakan
random.sample
teks bantuan:sumber
random.sample
mengembalikan indeks yang telah dipilih?Salah satu cara mudah untuk memilih item acak adalah dengan mengocok lalu mengiris.
sumber
random.choice(mylist,3)
tidak akan membuat dua set terpisah seperti ini.Saya pikir
random.choice()
ini pilihan yang lebih baik.fungsi mengembalikan array 3 nilai yang dipilih secara acak dari daftar
sumber
random.choice(mylist, 3, replace=False)
. Juga kurang membingungkan untuk digunakanimport numpy as np
dannp.random.choice(mylist, 3, replace=False)
Katakanlah daftar Anda memiliki 100 elemen dan Anda ingin memilih 50 dari mereka secara acak. Berikut langkah-langkah yang harus diikuti:
Kode:
sumber