6

csv ファイルから作成した辞書から、キーと値のペアのランダムなセットを取得しようとしています。ディクショナリには、遺伝子名をディクショナリキー、数値(遺伝子発現などに関係する)のリストを値として、遺伝子に関する情報が含まれています。

# python 2.7.5
import csv
import random

genes_csv = csv.reader(open('genes.csv', 'rb'))

genes_dict = {}
for row in genes_csv:
    genes_dict[row[0]] = row[1:]

length = raw_input('How many genes do you want? ')

for key in genes_dict:
    random_list = random.sample(genes_dict.items(), int(length))
    print random_list

問題は、(たとえば) 100 個の遺伝子のリストを取得しようとすると、辞書全体を反復処理して、100 個の遺伝子のすべての可能な組み合わせを返すように見えることです。

4

3 に答える 3

0

辞書キーの反復は必要ないという意見に同意します。ただし、形式をタプルではなくリストとして返したくない場合は、使用できます

 random_list=genes_dict.keys() int(length)

次に、値を取得するために、「int(length)」が複数の場合にループします。

 for x in random_list:
       print x,genes_dict[x]
       //or to create a new dict of the random values you could
       random_genes_dict[x]=genes_dict[x]
于 2014-01-27T18:48:55.723 に答える