在python列表中存储印地文文本

时间:2017-08-03 03:48:55

标签: python python-2.7 utf-8

我需要在python列表中存储印地语单词。当我存储印地语单词时,它被存储为utf-8编码的字符串而不是实际的单词。虽然如果我遍历列表,我可以用印地语打印单词,但是当我打印列表时,它会显示utf-8编码的字符串。

这是我打印列表'标签'

时得到的内容
['\xe0\xa4\x9f\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa5\x88\xe0\xa4\xab\xe0\xa4\xbf\xe0\xa4\x95 \xe0\xa4\xaa\xe0\xa5\x81\xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa4\x95\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xae\xe0\xa4\xbf\xe0\xa4\xaf\xe0\xa5\x8b\xe0\xa4\x82',  '\xe0\xa4\xb5\xe0\xa5\x87\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\x9f \xe0\xa4\x9c\xe0\xa4\xbf\xe0\xa4\xb2\xe0\xa4\xbe','\xe0\xa4\x9c\xe0\xa5\x80\xe0\xa4\x8f\xe0\xa4\xb8\xe0\xa4\x9f\xe0\xa5\x80', '\xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\xb2\xe0\xa5\x8d\xe0\xa4\xb2\xe0\xa5\x80', '\xe0\xa4\xb6\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xaf\xe0\xa4\xa4']

预期输出

的位置
[ट्रैफिक पुलिसकर्मियों, वेस्ट जिला, जीएसटी,दिल्ली,शिकायत]

3 个答案:

答案 0 :(得分:1)

列表的str()是根据其元素的repr()构建的 - 您不一定能够分辨元素的开始和结束位置。并且字符串的repr()使用非ASCII字符的转义序列,以确保即使存在各种类型的非打印字符,也可以确切地告诉字符串中的内容。

您只需自己将列表转换为字符串,而不涉及repr()

', '.join(tags)

答案 1 :(得分:1)

在打印前将列表解码为utf-8或将其存储以获取实际字符串

# -*- coding: utf-8 -*-

my_list = [ट्रैफिक पुलिसकर्मियों, वेस्ट जिला, जीएसटी,दिल्ली,शिकायत]

print my_list.decode('utf-8') 

输出

[ट्रैफिक पुलिसकर्मियों, वेस्ट जिला, जीएसटी,दिल्ली,शिकायत]

答案 2 :(得分:1)

计算机中的所有内容都是字节,所有进出该程序的数据都是字节。

字节的问题在于它们本身没有意义,我们需要约定来赋予它们意义。 使用ASCII码为每个字节分配95个符号中的一个。例如a ='\ x61',如果你使用函数打印,你会看到char a而不是\x61,但实际上你使用的是字节的代码 然后,如果您只想显示列表的数据,请使用print function:

## -*- coding: utf-8 -*-

for i in your list :
    print i

此代码的输出是有意义的

## -*- coding: utf-8 -*-

for i in your list :
    i

此代码的输出是字节