【发布时间】:2013-10-23 18:51:35
【问题描述】:
尝试从 Python 中的 UTF-8 编码字符串对象获取双精度浮点分数。这个想法是获取字符串的前 8 个字节并创建一个float,以便按分数排序的字符串将根据它们的前 8 个字节(或者可能是它们的前 63 位,在强制它们之后按字典顺序排列一切都是肯定的,以避免符号错误)。
例如:
get_score(u'aaaaaaa') < get_score(u'aaaaaaab') < get_score(u'zzzzzzzz')
我尝试使用左移和 XOR 以整数形式计算分数,但我不确定如何将其转换为 float 值。我也不确定是否有更好的方法来做到这一点。
应该如何计算字符串的分数才能满足我之前指定的条件?
编辑:字符串对象是 UTF-8 编码的(根据 @Bakuriu 的评论)。
【问题讨论】:
-
Unicode not 有“字节”,因此您的问题毫无意义。您可能是指某个 unicode 字符串的特定编码。在这种情况下,您必须指定编码。
-
64 位是不可能的,因为并非所有
double值都是可排序的;即使是 63 位也不太可能。有 56 位的可能性吗? -
绝对。我的最终目标是从字符串中获取尽可能多的数据,保持顺序,放入浮点数。这样,浮点分数将给出字符串的近似“绝对”分数。完全可以忍受:)
标签: python sorting unicode floating-point double