用python将“apple苹果橘子orange”,英文和汉字区分开来输出

问题描述:

用python将“apple苹果橘子orange”,英文和汉字区分开来输出

# -*- coding:utf-8 -*-
import string
mystring = 'apple苹果橘子orange'
english = []
chinese = []
for i in mystring.decode('utf-8'):
if i in string.ascii_letters:
english.append(i)
else:
chinese.append(i)
print 'English:'+''.join(english)
print 'Chinese:'+''.join(chinese)那個中文是幾個index呢?其實這個題目中漢字的位置是韓語,還要檢索文字數目,韓語一個字是2個index,所以用len的話,出來的是index數,而不是字數,所以我最先想用指定INDEX位置來做的,問的有些啰嗦了,謝謝還有for i in mystring.decode('utf-8'):if i in string.ascii_letters:這兩行是什麽意思呢?謝謝mystring.decode('utf-8') 这句是把原文转换成 unicode,这样字符串长度对应的是正确的文字数目。你可以 mystring = mystring.decode('utf-8')之后再用 index 来做string.ascii_letters 就是英文字母 [A-Za-z]