使用Unicode字符串连接Unicode字典值?

时间:2015-11-25 10:08:07

标签: python dictionary unicode

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

redefined = u'_redefined'
for key, value in FCFDdict.iteritems():
    value.join(redefined)
    print value
我错过了什么?非常感谢Feedack !!!

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

4 个答案:

答案 0 :(得分:3)

这不是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字符串。

答案 1 :(得分:2)

您可以使用dictionary comprehension

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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