如果我没搞错的话,Python字符串是以unicode标量存储的。但是,unicode标量可以组合起来形成其他的字形簇。因此,对string[n]
使用内存置换start + scalarSize * n
并不是您要寻找的答案。在
这是否意味着Python对每个标量进行线性迭代以获得您要查找的标量?如果你有
word = 'caf' + char(65) + char(301) #café
Python是否将其存储为五个标量,并在继续之前迭代检查是否应该组合这些标量,还是在插入时执行检查并存储“纯”标量?在
编辑:我把Python和另一种语言搞混了。Python的print()
打印出grapheme集群,但是Python的str
存储标量,不管您如何输入它们。这两个标量可以和另一个标量组合成一个标量。当您调用string[0]
时,您将得到插入到字符串中的标量。在
Python字符串索引不考虑grapheme集群。它通过Unicode代码点工作。我认为Python实际上没有任何内置的用于处理grapheme集群的功能。在
字符串索引需要固定的时间,但是如果您想要检索第n个grapheme集群,那么字符串索引就不能满足您的需要。在
(有时人们建议对字符串应用规范组合,但有许多可能的石墨烯簇在规范组合之后仍会使用多个代码点。)
相关问题 更多 >
编程相关推荐