ফাইল এ লিখতে এলোমেলোভাবে তালিকা থেকে 50 টি আইটেম নির্বাচন করুন


129

এখন পর্যন্ত আমি কীভাবে ফাইলটি আমদানি করতে পারি, নতুন ফাইল তৈরি করতে পারি এবং তালিকাটি এলোমেলো করে ফেলতে পারি তা নির্ধারণ করেছি।

কোনও ফাইলটিতে লেখার জন্য তালিকা থেকে এলোমেলোভাবে কেবল 50 টি আইটেম নির্বাচন করতে আমার সমস্যা হচ্ছে?

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')   

সুতরাং যদি মোট র্যান্ডমাইজেশন ফাইল ছিল

example:

random_total = ['9','2','3','1','5','6','8','7','0','4']

আমি 3 টির প্রথম র্যান্ডম সেট, 3 এর দ্বিতীয় এলোমেলো সেট এবং 3 এর তৃতীয় র্যান্ডম সেট চাই (3 উদাহরণস্বরূপ, তবে আমি যেটি তৈরি করতে চাই তার 50 টি হওয়া উচিত) সহ 3 টি ফাইল (আউট_ফাইলে 1 | 2 | 3) চাই would

random_1 = ['9','2','3']
random_2 = ['1','5','6']
random_3 = ['8','7','0']

সুতরাং শেষ '4' অন্তর্ভুক্ত করা হবে না যা ভাল।

আমি এলোমেলোভাবে তালিকা থেকে 50 টি নির্বাচন করতে পারি?

আরও ভাল, আমি কীভাবে মূল তালিকা থেকে এলোমেলোভাবে 50 টি নির্বাচন করতে পারি?


আপনি কি বোঝাতে চেয়েছেন?
ওআরকা

উত্তর:


269

যদি তালিকাটি এলোমেলোভাবে থাকে তবে আপনি প্রথম 50 টি নিতে পারেন।

অন্যথায়, ব্যবহার করুন

import random
random.sample(the_list, 50)

random.sample সাহায্যকারী লেখা:

sample(self, population, k) method of random.Random instance
    Chooses k unique random elements from a population sequence.

    Returns a new list containing elements from the population while
    leaving the original population unchanged.  The resulting list is
    in selection order so that all sub-slices will also be valid random
    samples.  This allows raffle winners (the sample) to be partitioned
    into grand prize and second place winners (the subslices).

    Members of the population need not be hashable or unique.  If the
    population contains repeats, then each occurrence is a possible
    selection in the sample.

    To choose a sample in a range of integers, use xrange as an argument.
    This is especially fast and space efficient for sampling from a
    large population:   sample(xrange(10000000), 60)

1
আমি random.sampleযে সূচকগুলি বেছে নিয়েছি সেগুলিও কি আমি ফিরিয়ে দিতে পারি ?
zyy

43

এলোমেলো আইটেম নির্বাচন করার একটি সহজ উপায় হ'ল তারপরে টুকরো টুকরো করা।

import random
a = [1,2,3,4,5,6,7,8,9]
random.shuffle(a)
print a[:4] # prints 4 random variables

@ মনিকা হেইডনেক কেন এলোমেলো বদলে যাওয়া এবং কাটা কাটা আরও ভাল হবে? নির্বাচনকে এলোমেলো করে কতগুলি নমুনা নির্বাচন করা হবে তা এলোমেলোভাবে বদলে যাওয়া এবং তারপরেও এলোমেলো করে দেওয়া নমুনাগুলির এক টুকরো গ্রহণ করে? আপনি দয়া করে ব্যাখ্যা করতে পারেন? ধন্যবাদ।
সালভু

7
আমি মেশিন লার্নিং প্রকল্পের জন্য সহজেই একটি পরীক্ষা / ট্রেন সেট তৈরি করতে এটি ব্যবহার করেছি। ব্যবহারের random.choice(mylist,3)ফলে দুটি বিভেদ সেট তৈরি হবে না।
মনিকা হেডনেক

29

আমি মনে করি random.choice()এটি একটি ভাল বিকল্প।

import numpy as np

mylist = [13,23,14,52,6,23]

np.random.choice(mylist, 3, replace=False)

ফাংশনটি তালিকা থেকে এলোমেলোভাবে নির্বাচিত মানগুলির একটি অ্যারে প্রদান করে


7
আমার মনে হয় আপনার ব্যবহার করা দরকার random.choice(mylist, 3, replace=False)। এছাড়াও ব্যবহারে কম বিভ্রান্তি import numpy as npএবংnp.random.choice(mylist, 3, replace=False)
জন লা রুই

10
এটি তালিকা আইটেমটি পুনরাবৃত্তি করার সম্ভাবনা রয়েছে
পললো

না এটি আরও ভাল বিকল্প নয়, এটি 100 গুন ধীর গতির
নীতেশ কানসাল

-3

বলুন আপনার তালিকায় 100 টি উপাদান রয়েছে এবং আপনি এলোমেলোভাবে তাদের 50 টি চয়ন করতে চান। এখানে অনুসরণের পদক্ষেপগুলি:

  1. গ্রন্থাগারগুলি আমদানি করুন
  2. এলোমেলো সংখ্যা জেনারেটরের জন্য বীজ তৈরি করুন, আমি এটি 2 এ রেখেছি
  3. সংখ্যার একটি তালিকা প্রস্তুত করুন যা থেকে এলোমেলো উপায়ে নেওয়া উচিত
  4. সংখ্যা তালিকা থেকে এলোমেলো পছন্দ করুন

কোড:

from random import seed
from random import choice

seed(2)
numbers = [i for i in range(100)]

print(numbers)

for _ in range(50):
    selection = choice(numbers)
    print(selection)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.