字典和unicode

时间:2016-09-21 12:29:05

标签: python dictionary unicode

我最近开始学习Python,并且陷入了我正在尝试的小项目中。 我有一个包含我的项目数据的数组,我想通过使用代码来链接它。

    >>> keys = ['a', 'b', 'c']
    >>> values = [1, 2, 3]
    >>> dictionary = dict(zip(keys, values))

但是对于我的项目,我需要在我的values数组中使用日语字符。有没有一种方法可以在数组中使用我的日文字符?另外,如果我在使用unicode键入单词,我怎么能在字典中显示相当于unicode的单词 例如:

    print(u'\4096')

会工作,但如果我打印整个字典

    print (dictionary)

它不会显示我的日文字符。我怎么能解决这个问题?

额外:

另一个问题是我将第一个数组改为列表,因为它需要存储信息放在一起,是否有替代解决方案?

    dictionary = dict(zip(file_content,japanese))
    TypeError: unhashable type: 'list'

1 个答案:

答案 0 :(得分:0)

Python有两种主要版本--Python2和Python3,它们之间的区别之一是它们如何处理Unicode。根据经验,你应该使用Python3,因为它是一种更好的语言,随着时间的推移越来越好。大多数大型图书馆都支持它。

在Python3中,这应该可行:

keys = ['a', 'b', 'c']
values = ['á', 'b', 'ç']
dictionary = dict(zip(keys, values))
print(dictionary) # {'a': 'á', 'b': 'b', 'c': 'ç'}

在Python2中,同样的事情应该有效,但你应该使用“Unicode”字符串,如下所示:

keys = ['a', 'b', 'c']
values = [u'á', u'b', u'ç']
dictionary = dict(zip(keys, values))
print(dictionary) # {'a': u'\xe1', 'c': u'\xe7', 'b': u'b'}

字符串可以正确存储您想要的unicode内容,由于打印功能的优点,它们不能很好地打印。但是,例如,如果你想要打印一个键,它就会弄明白并做正确的事情。

当您将输出写入文件或其他类型的流时,您将始终必须正确编码字符串。

This是对Python和字符串主题的一个很好的介绍。