pythonスクリプトを作成しようとしていて、辞書がついています。私は他のフォーラムのいくつかを読んだが、どこにも出てこないようである。私は非常に新しいPythonプログラマーですので、優しくしてください。リストの値を辞書のキーに追加する
1)は、このような辞書の設定::私は何をしたいか
{'Name':'userid','jobid:jobid','walltime:walltime,'nodes:nds'}
2)から作成されたエントリと外部関数呼び出しのリストを反復して辞書を移入するための情報を抽出し
3)問題:私は適切なキーたとえば
にエントリを追加する方法を見つけ出すことはできませんが、私はこれをしたい:
{‘Name’:’jose’,’jobid’:’001,002,003,005’,’walltime:32:00,240:00,04:00,07:00’,’nodes’:32,32,500’}
1つのユーザーIDについては、複数のジョブID、壁紙、ノードがあります。いずれかのユーザーID用
(len(jobids)==len(walltimes)==len(nodes)
が、私は、各ユーザ名の最初の値を見つけるためのスクリプトを取得することができていますが、それは追加されません)
ユーザーIDごとに異なることができます。どうすればこれを追加することができますか?ここで
は、私は、これは間違っている知っているが、アペンド作業を取得する方法を見つけ出すことはできません
from collections import defaultdict
pdict = defaultdict(list)
start the loop:
# get new values – add these to the dictionary keyed
# on username (create a new entry or append to existing entry)
…
(jobid,userid,jobname, sessid, nds, tsk, walltime,rest)= m.groups()
...
if userid in pdict:
print "DEBUG: %s is currently in the dictionary -- appending entries" %(userid)
pdict[userid][‘jobid’] = pdict[userid][jobid].append(jobid) I
# repeat for nodes, walltime, etc
if not userid in pdict:
print "DEBUG: %s is not in the dictionary creating entry" %(userid)
pdict[userid] = {} # define a dictionary within a dictionary with key off userid
pdict[userid]['jobid'] = jobid
pdict[userid]['jobname'] = jobname
pdict[userid]['nodes'] = nds
pdict[userid]['walltime'] = walltime
を試してきたものです。私はこのサイトで提供されている提案の多くを試しました。ユーザーIDに合わせてループから最新の値を追加する必要があります
これは出力の例です。
userid jmreill contains data: {'nodes': '1', 'jobname': 'A10012a_ReMig_Q', 'walltime': '230:0', 'jobid': '1365582'}
userid igorysh contains data: {'nodes': '20', 'jobname': 'emvii_Beam_fwi6', 'walltime': '06:50', 'jobid': '1398100'}
お勧めはありますか?これは簡単なはずですが、私はそれを理解できません!
エラーが表示されますか?おそらく 'AttributeError: 'str'オブジェクトに属性 'append''がありませんか?複数の値を保持するキーのリストを作成しなければならないと、 'append()'することができます。それで 'pdict [userid] ['jobid'] = [jobid]' – Jasper
のようなものです。もし 'もしpdidの中にuseridがありません。 – SparkAndShine