比较python中的字符串数值

时间:2017-11-04 00:58:36

标签: python

'a' > str('2')         # True
'a' > str('34363454')  # True
'a' > 'b'              # False
'a' < 'b'              # True

我认为字符串a的值与ord(&#39; a&#39;)相同,即97.

我想知道如何用布尔表达式比较不同的字符串。

为什么b大于?为什么大于str(&#39; 2&#39;)?

3 个答案:

答案 0 :(得分:1)

正如您所说,字符串比较可以被视为在结果上映射ord并比较结果列表。

'23' > '33' = map(ord, '23') > map(ord, '33')
            = (50, 51) > (51, 51)
            = False

类似地

ord('a') = 97
ord('b') = 98
# and so...
'a' < 'b'        # True

请注意,大写字母会在事物中抛出一把猴子扳手

'Z' < 'a'  # True
'a' < 'z'  # also True

答案 1 :(得分:0)

在Python中,所有变量都是作为存储其实际数据的内存区域的指针实现的。他们的行为是根据任意规则定义的。例如,比较字符串被定义为按字母顺序比较它们(如果字典中稍后出现,则&gt; b为真),所以你有:

>>> "stack" > "overflow"
True

&#39;一个&#39; == 97是在char类型(不是字符串&#39; a&#39;)表示为表示ASCII表中的位置的数字时发现的东西(例如,C的情况,或者, Python,可以使用ord()找到的东西。

答案 2 :(得分:0)

比较是按位置,这是一个例子:

print("b">"a1234a"); # b > a

=> True

print("a">"1234a"); # a > 1

=> True

请参阅文档here