[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.목록이 무작위 순서 인 경우 처음 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.무작위 항목을 선택하는 쉬운 방법 중 하나는 임의로 섞어 슬라이스하는 것입니다.
무작위 항목을 선택하는 쉬운 방법 중 하나는 임의로 섞어 슬라이스하는 것입니다.
import random a = [1,2,3,4,5,6,7,8,9] random.shuffle(a) print a[:4] # prints 4 random variables
-
==============================
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.목록에 요소가 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)
from https://stackoverflow.com/questions/15511349/select-50-items-from-list-at-random-to-write-to-file by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬에서 가장 빠른 pairwise distance metric (0) | 2018.11.10 |
---|---|
[PYTHON] regex를 사용하여 중복 문자를 제거 하시겠습니까? (0) | 2018.11.10 |
[PYTHON] 파이썬에서 목록을 순회하면서 요소를 제거하십시오 [duplicate] (0) | 2018.11.10 |
[PYTHON] 파이썬 로깅 모듈에서 줄 바꿈을 억제하십시오. (0) | 2018.11.09 |
[PYTHON] 상관 행렬 찾기 (0) | 2018.11.09 |