Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 构造一个';它比任何字符串都大_Python_Python 3.x_String_Comparison_Sentinel - Fatal编程技术网

Python 构造一个';它比任何字符串都大

Python 构造一个';它比任何字符串都大,python,python-3.x,string,comparison,sentinel,Python,Python 3.x,String,Comparison,Sentinel,在Python3中,我有一个字符串列表,如果能够附加一个比列表中的所有元素都要大的sentinel,我会觉得很有用 有没有一种简单的方法来构造这样一个对象? 我可以定义一个类,可能子类化str,但感觉应该有一种更简单的方法 为了简化我的算法,我需要提前这样做,在我知道列表中包含的字符串将是什么之前(因此它不能是这些字符串的函数)。这是一种天真的回答,但是当你处理数字时,需要一个哨兵值来进行比较,使用特定数字类型可以容纳的最大(或最小)数字并不少见 Python字符串是按字典顺序进行比较的,所以要

在Python3中,我有一个字符串列表,如果能够附加一个比列表中的所有元素都要大的sentinel,我会觉得很有用

有没有一种简单的方法来构造这样一个对象?

我可以定义一个类,可能子类化
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)