python - 从列表中的每个项目中提取整数和 unicode

标签 python list unicode

我正在做语言学项目(语言是马拉雅拉姆语)。

我的列表是

x= [u'1\u0d30\u0d3e\u0d2e\u0d28\u0d4d\u200d', u'5\u0d05\u0d35\u0d28\u0d4d\u200d']  

我想从列表中的每个项目中提取整数和 unicode。

预期输出是

1 \u0d30\u0d3e\u0d2e\u0d28\u0d4d\u200  
5 \u0d05\u0d35\u0d28\u0d4d\u200d

首先我尝试将第一项 x[0] 转换为 ascii

print unicodedata.normalize('NFKD',x[0]).encode('ascii','ignore') 

输出为 1 。

我认为生成此输出是因为列表中的 unicode 适用于马拉雅拉姆语。

然后我尝试找到“\u”的第一个索引,例如

x[0].index("\u")

执行此操作时发生错误。

最佳答案

字符序列\uXXXX表示单个unicode字符,而不是字符串中的字符序列。

您可以获得预期的输出,如下所示:

for i in x:
    print int(i[0]), repr(i[1:])[2:-1]

(假设整数只有一位)

对于更一般的情况,一种解决方案是使用正则表达式提取整数:

import re
for i in x:
    s = re.match('([0-9]+)', i).group(1)
    print int(s), repr(i[len(s):])[2:-1]

关于python - 从列表中的每个项目中提取整数和 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22006216/

相关文章:

windows - 带有 git-bash 的 Unicode (utf-8)

c# - Find() 与列表上的枚举

c# - String.Join 对象列表

php 查找表情符号 [更新现有代码]

python - 在 Elastic Beanstalk 上部署 Pyramid 应用程序

list - 如何将 switch 中的变量与列表的内容匹配?

html - IE7 不会显示带有编码文件名的 bmp 文件

python - 如何绘制数组或替代函数的函数?

python - python中奇怪的十进制输出

python - 如何在 sqlalchemy ORM 查询中使用 NOT IN 子句