我正在处理一些混合语言的文本,我已经对其进行了一些处理,并且采用单个字符列表(称为“字母”)的形式。我可以通过简单地测试它是否有大小写来判断每个字符是哪种语言(使用一个名为“test_lang”的小函数)。然后我想在不同类型的字符之间插入一个空格,所以我没有任何混合字符类型的单词。同时,我想在单词和标点符号之间插入一个空格(我在一个名为“punc”的列表中定义)。我编写了一个脚本,它以一种非常直接的方式执行此操作,这对我来说很有意义(如下),但显然是错误的方式,因为它非常慢。
谁能告诉我更好的方法是什么?
# Add a space between Arabic/foreign mixes, and between words and punc
cleaned = ""
i = 0
while i <= len(letters)-2: #range excludes last letter to avoid Out of Range error for i+1
cleaned += letters[i]
# words that have case are Latin; otherwise Arabic
if test_lang(letters[i]) != test_lang(letters[i+1]):
cleaned += " "
if letters[i] in punc or letters[i+1] in punc:
cleaned += " "
i += 1
cleaned += letters[len(letters)-1] # add in last letter