python中的Unicode问题

时间:2015-04-28 11:47:40

标签: python python-2.7 unicode

我需要创建一个像

这样的字典
d1={u'apple':True}

但我在字符串中写了“苹果” 问题是,如果我写

>>> d1={}
>>> d[u'apple']=True

有效 但如果我写

>>> d1={}
>>> str="apple"

然后如何在开头添加的unicode str中插入u

2 个答案:

答案 0 :(得分:3)

在Python3中你是苹果'和" apple"是相同的。在Python2中,两者的行为都相同。

>>> "apple"==u"apple"
True

如果需要在字节字符串和unicode字符串之间进行转换,请使用decode:

"apple".decode('utf8')

答案 1 :(得分:2)

你可以这样做:

>>> d = {}
>>> str_ = "apple"
>>> d[str_.decode('ascii')] = True
>>> d
{u'apple': True}

但我的问题是为什么要打扰?因为在python 2.x中,你有

"apple" == u"apple"

这意味着无论您拥有unicode对象还是bytes对象,dict查找/插入/删除都将完全相同。所以这并不重要。

类比是使用带有整数0或浮点0.的dict键,它实际上没有任何区别用作键。