【问题标题】:Concatenate Unicode Dictionary Value with Unicode String?将 Unicode 字典值与 Unicode 字符串连接起来?
【发布时间】:2015-11-25 10:08:07
【问题描述】:

我正在尝试将一个 unicode 字符串附加到字典中每个值的末尾...看起来简单明了,但我不知道该怎么做——这不起作用:

redefined = u'_redefined'
for key, value in FCFDdict.iteritems():
    value.join(redefined)
    print value

我错过了什么?非常感谢您的反馈!!!

编辑:我的值是 unicode 文件路径。

【问题讨论】:

  • 能不能给我看FCFdict的样本
  • 你说的不起作用是什么意思?它抛出的异常是什么?
  • 没有抛出异常,但我的字典值没有改变。
  • @CrazyOtto 都是 unicode 的值,因为如果不加入可能会引发错误
  • @Vignesh,是的,所有值都是 unicode

标签: python dictionary unicode


【解决方案1】:

这不是str.join 所做的。 str.join 用于从字符串值列表创建单个字符串。下面是它对两个字符串的作用:

>>> value = u"value"
>>> redefined = u"redefined"
>>> value.join(redefined)
u'rvalueevaluedvalueevaluefvalueivaluenvalueevalued'

此外,由于字符串是不可变的,因此您无法修改它们。相反,您需要替换字典中保存的值。这会起作用:

redefined = u'_redefined'
for key, value in FCFDdict.iteritems():
    FCFDdict[key] = value + redefined
    print FCFDdict[key]

使用字符串连接(+)是您所需要的,无论它是否是 unicode 字符串。

【讨论】:

    【解决方案2】:

    你可以使用dictionary comprehension:

    FCFDdict2 = {key: value + redefined for key, value in FCFDdict.iteritems()}
    

    【讨论】:

      【解决方案3】:
      redefined = u'_redefined'
      for key, value in FCFDdict.iteritems():
          FCFDdict[key] = value + redefined
          print FCFDdict[key]
      

      【讨论】:

        【解决方案4】:
        >>> d = {"a":"1", "b":"2", "c":'3'}
        >>> redefined = u'_redefined'
        >>> for key, value in d.iteritems():
                d[key] = value + redefined
        >>> d
        {'a': u'1_redefined', 'c': u'3_redefined', 'b': u'2_redefined'}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-09
          • 1970-01-01
          • 1970-01-01
          • 2013-09-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多