Das Ziel besteht darin, ein Zeichen mit Leerzeichen zu füllen, wenn die issubset
Bedingung erfüllt ist, z.Wie packt man ein Zeichen mit Leerzeichen, wenn es zwischen einem Unicode-Bereich liegt?
[in]:
subset = [chr(ordinal) for ordinal in range(ord(u'\u31c0'), ord(u'\u31ef'))]
text = '这是个小㇈㇋伙子'
[out]:
output_text = '这是个小 ㇈ ㇋ 伙子'
ich es als solches tun könnte:
def issubset(uchar):
if u'\u31c0' <= uchar <= u'\u31ef':
return True
return False
def pad_space_ifsubset(text):
output = ""
for ch in text:
if issubset(ch):
output += " " + ch + " "
else:
output += ch
return output
text = '这是个小㇈㇋伙子'
pad_space_ifsubset(text)
Aber gibt es einen einfacheren Weg, dies zu tun? Vielleicht mit Regex?
Was meinst du mit einfacheren Weg? effizienter, reduierbar? – scharette
Entweder effizienter oder nur ein anderer Weg (mit Regex oder anders). – alvas