1

ここでの最初の質問ですが、私が犯すであろうさまざまな雑多な誤りを許してください。

私はしばらくの間これに取り組んできました、そして私は困惑していることを認めます-私の背景はデータがかなり明確な構造を持っている統計的側面にあるので、一般的な意味での辞書は私の頭を少し傷つけます。私はPython2.7で作業していますが、次の問題があります。NetworkXパッケージを使用した分析の最後に、興味のある2つの辞書があります。これをAbleとBakerと呼びます。

それぞれは本質的にネットワークノードの名前と値の辞書です。だから次のようなもの:

ジョー:7ケイト:9マイク:3-そして-ジョー:12ケイト:4マイク:2

しかし、この出力はPythonを離れる予定であり、全体を2つの別々のファイルとしてかなり簡単に出力できますが(これまでは)、次のようにフォーマットされた単一のCSVファイルとして出力されると非常に便利です。それで:

ジョー、
7、12ケイト、9、4
マイク、3、2

現在、次のコマンドを実行して、2つの辞書を1つの辞書にまとめています。

output = dict((k, [Able[k], Baker.get(k)]) for k in Able)
output.update((k, [None, Baker[k]]) for k in Baker if k not in Able)

これにより、私が欲しいもの、つまりジョーの辞書に近づくことができます:[7、12]。しかし、CSVライターを連携させて、[7,12]を配列の一部としてではなく、別個のエンティティ(つまり、7,12)として出力する方法については正直に困惑しています。私が得た最も近いものは次のとおりです。

net_out = open('output.csv', 'w')
writer = csv.writer(net_out, dialect='excel')
for node, value in output.items():
    writer.writerow([node,value])
net_out.close()

これはジョーの列を出します[7,12]。私を正しい方向に向けることができる人はいますか?

4

2 に答える 2

2

に置き換え writer.writerow([node,value]) ます writer.writerow([node]+value)

于 2011-07-29T08:02:56.453 に答える
1

名前を含むリストと2つの数字を含むリストをに渡しますwriter.writerow。必要なものを取得するには、リストを名前と番号のリストにまとめます。簡単なアプローチ:

for node, value in output.items():
    writer.writerow([node] + value)
于 2011-07-29T08:03:09.050 に答える