我想迭代Unicode字符串中的每个字符,我这样做:
import unicodedata
import json
words = ['\\u05d5\\u05b7\\u05d9\\u05b0\\u05d3\\u05b7\\u05d1\\u05bc\\u05b5\\u05a3\\u05e8', '\\u05d9\\u05b0\\u05d4\\u05b9\\u05d5\\u05b8\\u0594\\u05d4', '\\u05d0\\u05b6\\u05dc\\u05be\\u05de\\u05b9\\u05e9\\u05c1\\u05b6\\u05a5\\u05d4', '\\u05d5\\u05b0\\u05d0\\u05b6\\u05bd\\u05dc\\u05be\\u05d0\\u05b7\\u05d4\\u05b2\\u05e8\\u05b9\\u0596\\u05df', '\\u05dc\\u05b5\\u05d0\\u05de\\u05b9\\u05bd\\u05e8\\u05c3']
for word in words:
print(word)
print(type(word))
for idx, char in enumerate(word):
char_name = unicodedata.name(char)
print(char_name + ": " + char + " : " + json.dumps(char)) # comment out
但结果是:
REVERSE SOLIDUS: \ : "\\"
LATIN SMALL LETTER U: u : "u"
DIGIT ZERO: 0 : "0"
DIGIT FIVE: 5 : "5"
LATIN SMALL LETTER D: d : "d"
DIGIT FIVE: 5 : "5"
REVERSE SOLIDUS: \ : "\\"
LATIN SMALL LETTER U: u : "u"
如何迭代字符串中的Unicode字符
我想我需要将\\u
转换为\u
,但我不知道如何转换:
print(word.replace('\\u', '\u'))
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
请键入正确的单词列表,不带双反斜杠:
或者使用
.decode('unicode_escape')
转换列表,但必须首先将.encode()
转换为字节字符串。由于原始字符串都是ASCII字符,您几乎可以使用任何标准编码来转换为字节,但是'ascii'
是最明确的:两者都会导致:
显然,需要对单词进行编码和解码以避开反斜杠:
可以使用Python中的split()命令将sting分解为一个列表。然后可以迭代列表中的元素。您可以按如下方式执行此操作:
这将产生:
相关问题 更多 >
编程相关推荐