1

次の構造の python 辞書を取得しようとしています。

>>>my_dict
>>>(i1,j1):{c1:1,c2:3,c3:4},(i2,j2):{c1:1,c2:1,c3:1}...

私がやりたいのは、キー (i,j) と r1,r2,r3.rn をマトリックスまたは視覚化に使用されるある種のテーブルで取得することです。したがって、テーブル表現は次のようになります。

       c1  c2  c3 ...rN
i1,j1   1   3  4        
i2,j2   1   1  1     
iN,jN

基本的に、行に主キーが必要で、列に値 (別の辞書) のキーが必要です。次に、キーを列と行の値に簡単にマップします。

私は非常に具体的であり、これはほんの一例です。私は実際に私が探しているものについて混乱しています。私はこれを何度も行う必要があります。辞書をこのようなテーブルにマップする簡単な方法はありますか? 探しているモジュールはありますか?

よろしくお願いします、J

4

2 に答える 2

2
dic={('i1','j1'):{'c1':1,'c2':3,'c3':4},('i2','j2'):{'c1':1,'c2':1,'c3':1}}
header=list(max(dic.values()))
print '\t',
print "  ".join(sorted(header))
for x in dic:
    print ",".join(x)+'\t',
    for y in sorted(dic[x]):
        print str(dic[x][y])+"  ",
    print    

出力:

        c1  c2  c3
i1,j1   1   3   4  
i2,j2   1   1   1  

これをファイルに書き込むには、これを試してください:

with open('data.txt','w') as f:
    dic={('i1','j1'):{'c1':1,'c2':3,'c3':4},('i2','j2'):{'c1':1,'c2':1,'c3':1}}
    header=list(max(dic.values()))
    f.write('\t')
    f.write("  ".join(sorted(header))+'\n')
    for x in dic:
        f.write(",".join(x)+'\t')
        for y in sorted(dic[x]):
            f.write(str(dic[x][y])+"  ")
        f.write('\n')
于 2012-07-16T05:20:15.557 に答える
1
{ 
    'primary_key1': [{key: data},{key: data},{key: data},{key: data},{key: data},{key: data}]},
    'primary_key2': [{key: data},{key: data},{key: data},{key: data},{key: data},{key: data}]} 
     ...
    'primary_keyN': [{key: data},{key: data},{key: data},{key: data},{key: data},{key: data}]}
}

したがって、PKを使用してそれらを取得できます。キーがある場合は、次のような重複キーを使用してdictに保存できます。

'primary_key1': [{key: data},{key: data},{key: data},{key: data},{key: data},{key: data}]

または、値に常に一意のキーがある場合は、ネストを行います。

'primary_key1': {key: data, key: data, key: data},

またはそれ以外の場合はデータのみ:

'primary_key1': [data, data, data],

これがあなたを助けることを願っています。

于 2012-07-16T05:12:07.150 に答える