我需要在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']
预期输出
的位置[ट्रैफिक पुलिसकर्मियों, वेस्ट जिला, जीएसटी,दिल्ली,शिकायत]
答案 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
此代码的输出是字节