Python从Python Dictionary获取字符串(键+值)

时间:2013-07-04 06:08:50

标签: python string dictionary

我有字典结构。例如:

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

3 个答案:

答案 0 :(得分:18)

list键值str s,

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

break之后你可能还想要print - 很难确切知道这是为了什么。

答案 1 :(得分:3)

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

dict = {'key1': 'value1', 'key2': 'value2'}
str = ''.join(['%s_%s' % (k,v) for k,v in dict.iteritems()])

答案 2 :(得分:0)

def checkCommonNodes(id, rs):
   k,v = id.split('_')
   for d in rs:
       if d.get(k) == v:
           return id
   retun None