복붙노트

[PYTHON] 목록에서 50 개의 항목을 무작위로 선택하여 파일에 쓰십시오.

PYTHON

목록에서 50 개의 항목을 무작위로 선택하여 파일에 쓰십시오.

지금까지 파일 가져 오기, 새 파일 작성 및 목록 임의 화 방법을 알아 냈습니다.

목록에서 임의로 파일에 쓰는 항목을 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 파일 (out_file1 | 2 | 3)을 원할 것입니다.

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

따라서 마지막 '4'는 포함되지 않습니다.

목록에서 무작위로 선택한 50 개를 어떻게 선택할 수 있습니까?

더 나은 점은 어떻게 원래 목록에서 무작위로 50을 선택할 수 있습니까?

해결법

  1. ==============================

    1.목록이 무작위 순서 인 경우 처음 50 개를 가져갈 수 있습니다.

    목록이 무작위 순서 인 경우 처음 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)
    
  2. ==============================

    2.무작위 항목을 선택하는 쉬운 방법 중 하나는 임의로 섞어 슬라이스하는 것입니다.

    무작위 항목을 선택하는 쉬운 방법 중 하나는 임의로 섞어 슬라이스하는 것입니다.

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

    3.random.choice ()가 더 좋은 선택이라고 생각합니다.

    random.choice ()가 더 좋은 선택이라고 생각합니다.

    import numpy as np
    
    mylist = [13,23,14,52,6,23]
    
    np.random.choice(mylist, 3, replace=False)
    

    이 함수는 목록에서 임의로 선택한 3 개의 값의 배열을 반환합니다.

  4. ==============================

    4.목록에 요소가 100 개 있고 무작위로 50 개를 선택하려고한다고 가정 해보십시오. 따라야 할 단계는 다음과 같습니다.

    목록에 요소가 100 개 있고 무작위로 50 개를 선택하려고한다고 가정 해보십시오. 따라야 할 단계는 다음과 같습니다.

    암호:

    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)
    
  5. from https://stackoverflow.com/questions/15511349/select-50-items-from-list-at-random-to-write-to-file by cc-by-sa and MIT license