Python 构造一个';它比任何字符串都大
在Python3中,我有一个字符串列表,如果能够附加一个比列表中的所有元素都要大的sentinel,我会觉得很有用 有没有一种简单的方法来构造这样一个对象? 我可以定义一个类,可能子类化Python 构造一个';它比任何字符串都大,python,python-3.x,string,comparison,sentinel,Python,Python 3.x,String,Comparison,Sentinel,在Python3中,我有一个字符串列表,如果能够附加一个比列表中的所有元素都要大的sentinel,我会觉得很有用 有没有一种简单的方法来构造这样一个对象? 我可以定义一个类,可能子类化str,但感觉应该有一种更简单的方法 为了简化我的算法,我需要提前这样做,在我知道列表中包含的字符串将是什么之前(因此它不能是这些字符串的函数)。这是一种天真的回答,但是当你处理数字时,需要一个哨兵值来进行比较,使用特定数字类型可以容纳的最大(或最小)数字并不少见 Python字符串是按字典顺序进行比较的,所以要
str
,但感觉应该有一种更简单的方法
为了简化我的算法,我需要提前这样做,在我知道列表中包含的字符串将是什么之前(因此它不能是这些字符串的函数)。这是一种天真的回答,但是当你处理数字时,需要一个哨兵值来进行比较,使用特定数字类型可以容纳的最大(或最小)数字并不少见 Python字符串是按字典顺序进行比较的,所以要创建“max string”,只需创建一个长字符串“max char”:
除非有我不知道的奇怪的情况,
MAX\u STRING
现在应该被认为比任何其他字符串(除了它本身)都大;如果它足够长。这是一种幼稚的回答,但是当你处理数字并且需要一个哨兵值来进行比较时,使用特定数字类型可以容纳的最大(或最小)数字并不少见
Python字符串是按字典顺序进行比较的,所以要创建“max string”,只需创建一个长字符串“max char”:
除非有我不知道的奇怪的情况,
MAX\u STRING
现在应该被认为比任何其他字符串(除了它本身)都大;如果它足够长。您是否需要str的特定实现?
或者您想要构造一个字符串
,其结果大于任何其他字符串
?您不需要子类str
,对象就可以了,这将相应地实现比较运算符。您是否需要str.\uu gt\uuu()
的特定实现,或者您希望构造一个结果大于任何其他string
的字符串
?您不需要子类化str
,对象也可以相应地实现比较运算符。
# 1114111 is the highest value that chr seems to accept
MAX_CHAR = chr(1114111)
# One million is entirely arbitary here.
# It should ideally be 1 + the length of the longest possible string that you'll compare against
MAX_STRING = MAX_CHAR * int(1e6)