【问题标题】:Python getting a string (key + value) from Python DictionaryPython 从 Python 字典中获取字符串(键 + 值)
【发布时间】:2013-07-02 00:41:17
【问题描述】:

我有字典结构。例如:

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

【问题讨论】:

    标签: python string dictionary


    【解决方案1】:

    键值对strs的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
    

    printing 之后,您可能还想break - 很难确切知道这是为了什么。

    【讨论】:

    • 亲爱的 Jared,感谢您的帮助,您能再看看编辑过的问题吗?我认为有不必要的循环反复运行。
    • 感谢您的及时回复!你的解决方案是我想要的。而不是打印(用于测试)我“返回”字符串。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:
      def checkCommonNodes(id, rs):
         k,v = id.split('_')
         for d in rs:
             if d.get(k) == v:
                 return id
         retun None
      

      【讨论】:

      • 感谢您的帮助.. 但我想在 d.get(k)==v 时返回 dict rs 中的所有 key_values 对
      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 2014-06-11
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多