13

我有字典结构。例如:

dict = {key1 : value1 ,key2 : value2}

我想要的是结合了键和值的字符串

需要的字符串 -->> key1_value1 , key2_value2

任何 Pythonic 方法来获得这个都会有所帮助。

谢谢

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

3 回答 3

25

一个list键值对strs,

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

您可能还想在 ingbreak之后print- 很难确切知道这是为了什么。

于 2013-07-04T06:10:53.113 回答
3

假设 Python 2.x,我会使用这样的东西

dict = {'key1': 'value1', 'key2': 'value2'}
str = ''.join(['%s_%s' % (k,v) for k,v in dict.iteritems()])
于 2013-07-04T06:13:36.100 回答
0
def checkCommonNodes(id, rs):
   k,v = id.split('_')
   for d in rs:
       if d.get(k) == v:
           return id
   retun None
于 2013-07-04T06:22:05.317 回答