2013-07-04 15 views
6

辞書構造を持っています。例えば: - >> key1_value1、key2_value2Python辞書から文字列(key + value)を取得する

これは役立つ取得する任意のPython的な方法

dict = {key1 : value1 ,key2 : value2} 

は、私が欲しいのはキーと値

必要な文字列を組み合わせた文字列です。

おかげ

def checkCommonNodes(id , rs): 
    for r in rs: 
     for key , value in r.iteritems(): 
      kv = key+"_"+value 
      if kv == id: 
       print "".join('{}_{}'.format(k,v) for k,v in r.iteritems()) 

答えて

15

キーと値str Sのlist

>>> d = {'key1': 'value1', 'key2': 'value2'} 
>>> ['{}_{}'.format(k,v) for k,v in d.iteritems()] 
['key2_value2', 'key1_value1'] 

それとも、すべてのキーと値のペアの単一の文字列を、必要な場合

>>> ', '.join(['{}_{}'.format(k,v) for k,v in d.iteritems()]) 
'key2_value2, key1_value1' 

編集:

たぶん、あなたはこのような何かを探している、

def checkCommonNodes(id, rs): 
    id_key, id_value = id.split('_') 
    for r in rs: 
     try: 
      if r[id_key] == id_value: 
       print "".join('{}_{}'.format(k,v) for k,v in r.iteritems()) 
     except KeyError: 
      continue 

また、INGのprintbreakに望むこともできる - これがためにある内容を正確に把握するのは難しいです。 Pythonの2.xのを想定し

+0

親愛なるジャレッドのようなものを使用することになり、助けてくれてありがとうは、uがplsは再び編集した質問を見ることができます。私は不必要なループが何度も繰り返し実行されていると思います。 – Peter

+0

迅速な対応をありがとう! urソリューションは私が望むものです。 print(テスト用)ではなく、文字列を返す。 – Peter

3

は、私がこの

dict = {'key1': 'value1', 'key2': 'value2'} 
str = ''.join(['%s_%s' % (k,v) for k,v in dict.iteritems()]) 
0
def checkCommonNodes(id, rs): 
    k,v = id.split('_') 
    for d in rs: 
     if d.get(k) == v: 
      return id 
    retun None 
+0

助けてくれてありがとう。だが、d.get(k)== vのとき、dict rsにあるすべてのkey_valuesペアを返すようにしたい – Peter

関連する問題