bytes(“ s”,“ utf-8”)> bytes(10000)== True

时间:2018-09-17 15:47:05

标签: python python-3.x

bytes("string")bytes(number)进行比较

In [212]: bytes("s","utf-8") > bytes(10000)
Out[212]: True

我尽力理解它:

In [219]: bytes("s", "utf-8"), len(bytes("s", "utf-8"))
Out[219]: (b's', 1)

In [220]: len(bytes(10**))
Out[220]: 100004

占用1000个字节的数字10 ^ 4小于“ s”需要一个字节。

我如何直观地理解它?

1 个答案:

答案 0 :(得分:1)

字节按字典顺序排列,例如字符串,列表或元组。因此,首先比较前导元素,然后比较下两个元素,依此类推,直到一个或两个字节字符串结束。所以

bytes("s", "utf-8") > bytes("r", "utf-8")
# True

bytes("s", "utf-8") > bytes("t", "utf-8")
# False

由于bytes(10000)使bytes充满了0,所以任何包含非零字节的bytes都会比它大,就像所有{{ 1}}在字典中的出现要早于包含其他任何字符的单词。