2013-07-04 14 views
6

Ho una struttura del dizionario. Per esempio:Python ottiene una stringa (chiave + valore) dal dizionario Python

dict = {key1 : value1 ,key2 : value2} 

quello che voglio è la corda che unisce la chiave e il valore

stringa Needed - >> key1_value1, key2_value2

Qualsiasi modo Pythonic per ottenere questo aiuterà.

Grazie

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()) 

risposta

15

Un list di chiave-valore str s,

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

Oppure, se volete una singola stringa di tutte le coppie chiave-valore,

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

EDIT:

Forse siete alla ricerca di qualcosa di simile,

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 

Si può anche essere volendo break dopo print ing - difficile sapere esattamente ciò che questo è per.

+0

Caro Jared, Grazie per l'aiuto, può u pls guardare di nuovo la questione modificato. Penso che ci siano cicli inutili che si ripetono continuamente. – Peter

+0

Grazie per la pronta risposta! la nostra soluzione è ciò che volevo. Invece di stampare (che è per testare) "restituisco" la stringa. – Peter

3

Supponendo Python 2.x, vorrei usare qualcosa di simile

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

Grazie per l'aiuto .. ma voglio ottenere il ritorno di tutte le coppie di valori chiave che sono in dict rs quando d.get (k) == v – Peter

Problemi correlati