1

プロパティと色のリストに関連付けたい一連の遺伝子があります。

gene_A_color = red
gene_B_color = blue

gene_A_property = ['a','b','c']
gene_B_property = ['d','e','f']

プロットの目的で、次のように色または遺伝子のいずれかを取得するためのキーとしてプロパティ値を使用できる辞書を作成したいと思います。

#lookup dictionary
{'a': ['red', 'gene_A']
 'b': ['red', 'gene_A']
 'c': ['red', 'gene_A']
 'd': ['blue' 'gene_B']
 'e': ['blue' 'gene_B']
 'f': ['blue' 'gene_B']}
lookup[a][0] = red
lookup[a][1] = gene_A

私はそのように始めましたが、遺伝子名を失った場合にのみリストを反転できます:

lookup_dict = defaultdict(list)
    lookup_dict['red'] =  ['a','b','c']
    lookup_dict['blue'] =  ['d','e','f']
inverted    = defaultdict(list)
for k, v in lookup_dict.items():
    inverted[v].append( k )

#inverted
{'a': 'red'
 'b': 'red'
 'c': 'red'
 'd': 'blue'
 'e': 'blue'
 'f': 'blue' }

提案?

4

2 に答える 2

1

これを行うためにいくつかの簡単なステートメントが必要な場合:

>>> gene_A_property = ['a','b','c']
>>> gene_B_property = ['d','e','f']
>>> ld={k:['red','gene_A'] for k in gene_A_property}
>>> ld.update({k:['blue','gene_B'] for k in gene_B_property})
>>> ld
{ 'a': ['red', 'gene_A'], 
  'c': ['red', 'gene_A'], 
  'b': ['red', 'gene_A'], 
  'e': ['blue', 'gene_B'], 
  'd': ['blue', 'gene_B'], 
  'f': ['blue', 'gene_B']
}
于 2012-05-14T21:48:56.023 に答える