Выберите 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 файла (out_file1 | 2 | 3) с первым случайным набором из 3, второго случайного набора из 3 и третьего случайного набора из 3 (для этого примера, но тот, который я хочу создать, должен иметь 50)

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

Таким образом, последний «4» не будет включен, и это нормально.

Как выбрать 50 из списка, который я рандомизировал?

Еще лучше, как я мог выбрать 50 случайным образом из исходного списка?

3 Solutions collect form web for “Выберите 50 элементов из списка в случайном порядке, чтобы записать в файл”

Если список находится в случайном порядке, вы можете просто взять первые 50.

В противном случае используйте

 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) 

Я думаю, что random.choice() – лучший вариант.

 from numpy import random mylist = [13,23,14,52,6,23] random.choice(mylist,3) 

функция возвращает массив из 3 случайно выбранных значений из списка

Один простой способ выбрать случайные элементы – это перетасовать, а затем срез.

 import random a = [1,2,3,4,5,6,7,8,9] random.shuffle(a) print a[:4] # prints 4 random variables 
  • Как использовать ведение журнала с файловым файлом python и настроить имя файла журнала
  • TypeError: ожидается объект символьного буфера - при попытке сохранить целое число в текстовый файл
  • Используя Python, как мне читать / записывать данные в памяти, как я бы с файлом?
  • разбор файла fasta с использованием генератора (python)
  • Запись списка в текстовый файл
  • Открыть файл в приложении Django
  • Цитирование через каталог в Интернете и отображение его содержимого (файлов и других каталогов) через Python
  • Поиск дубликатов файлов и их удаление
  • Python - лучший язык программирования в мире.